This time we continue to bring you a CSS3-based vertical accordion menu. In addition to the automatic folding of menu items like other accordion menus, it also has a feature that it has a smooth fade-in and fade-out effect during folding and unfolding.
Advertisement
<div class="container collapse"> <details> <summary>Accordion heading 1</summary> <div class="details-wrapper"> <div class="details-styling"> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa quis fuga saepe sunt delectus, quo assumenda dolorum officiis odit optio modi, aspernatur necessitatibus libero, itaque repellendus. Incidunt blanditiis magni velit.</p> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa quis fuga saepe sunt delectus, quo assumenda dolorum officiis odit optio modi, aspernatur necessitatibus libero, itaque repellendus. Incidunt blanditiis magni velit.</p> </div> </div> </details> <details> <summary>Accordion heading 2</summary> <div class="details-wrapper"> <div class="details-styling"> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa quis fuga saepe sunt delectus, quo assumenda dolorum officiis odit optio modi, aspernatur necessitatibus libero, itaque repellendus. Incidunt blanditiis magni velit.</p> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa quis fuga saepe sunt delectus, quo assumenda dolorum officiis odit optio modi, aspernatur necessitatibus libero, itaque repellendus. Incidunt blanditiis magni velit.</p> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa quis fuga saepe sunt delectus, quo assumenda dolorum officiis odit optio modi, aspernatur necessitatibus libero, itaque repellendus. Incidunt blanditiis magni velit.</p> </div> </div> </details> <details> <summary>Accordion heading 3</summary> <div class="details-wrapper"> <div class="details-styling"> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa quis fuga saepe sunt delectus, quo assumenda dolorum officiis odit optio modi, aspernatur necessitatibus libero, itaque repellendus. Incidunt blanditiis magni velit.</p> </div> </div> </details> </div>
.collapse-init summary + * { transition: all 0.25s ease-in-out; overflow: hidden; } .collapse-init :not(.panel-active) summary + * { height: 0; opacity: 0; -webkit-transform: scale(0.9); transform: scale(0.9); -webkit-transform-origin: bottom center; transform-origin: bottom center; } .collapse-init summary { list-style: none; } .collapse-init summary::-webkit-details-marker { display: none; } .collapse-init summary::before { display: none; } .collapse-init summary { cursor: pointer; }
this.settings = Object.assign({}, defaults, options); this._container = container; this._panels = container.querySelectorAll("details"); this.events = { openingPanel: new CustomEvent('openingPanel'), openedPanel: new CustomEvent('openedPanel'), closingPanel: new CustomEvent('closingPanel'), closedPanel: new CustomEvent('closedPanel') }; } _createClass(Collapse, [{ key: '_setPanelHeight', value: function _setPanelHeight(panel) { var contents = panel.querySelector("summary + *"); contents.style.height = contents.scrollHeight + "px"; } }, { key: '_removePanelHeight', value: function _removePanelHeight(panel) { var contents = panel.querySelector("summary + *"); contents.style.height = null; } }, { key: 'open', value: function open(panel) { panel.dispatchEvent(this.events.openingPanel); panel.open = true; }
Advertisement