Hoe te maken: vouwbare inhoud/accordeon
- Vorige pagina Menu pictogram
- Volgende pagina Tab
Leer hoe je een accordeon (vouwbare inhoud) maakt.
Accordeon
Het accordeon is zeer nuttig wanneer je wilt wisselen tussen het verbergen en weergeven van grote hoeveelheden inhoud:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Maak een accordeon
Eerste stap - Voeg HTML toe:
<button class="accordion">Section 1</button> <div class="panel"> <p>Lorem ipsum...</p> </div> <button class="accordion">Section 2</button> <div class="panel"> <p>Lorem ipsum...</p> </div> <button class="accordion">Section 3</button> <div class="panel"> <p>Lorem ipsum...</p> </div>
Tweede stap - Voeg CSS toe:
Stel de stijl van het accordeon in
/* Stel de stijl in voor de knoppen die het openen en sluiten van het accordeon paneel regelen */ .accordion { background-color: #eee; color: #444; cursor: pointer; padding: 18px; width: 100%; text-align: left; border: none; outline: none; transition: 0.4s; } /* Voeg achtergrondkleur toe aan de knop als deze wordt aangeklikt (klasse .active toegevoegd met JS), en als de muis erover hangt (hover) */ .active, .accordion:hover { background-color: #ccc; } /* Voeg stijl toe aan het accordeon paneel. Let op: het is standaard verborgen */ .panel { padding: 0 18px; background-color: white; display: none; overflow: hidden; }
Derde stap - Voeg JavaScript toe:
var acc = document.getElementsByClassName("accordion"); var i; for (i = 0; i < acc.length; i++) { acc[i].addEventListener("click", function() { /* Schakel de toevoeging en verwijdering van de "active" klasse in of uit om de knoppen van het control paneel te accentueren */ this.classList.toggle("active"); /* Schakel de actieve paneelweergave in of uit */ var panel = this.nextElementSibling; if (panel.style.display === "block") { panel.style.display = "none"; } else { panel.style.display = "block"; } }); }
动画手风琴(向下滑动)
要制作动画手风琴,请向面板类添加 max-height: 0
、overflow: hidden
以及 max-height
属性的过渡效果。
然后,使用 JavaScript 根据不同屏幕尺寸的面板高度来计算并设置 max-height
,以便实现内容的向下滑动效果:
<style> .panel { padding: 0 18px; background-color: white; max-height: 0; overflow: hidden; transition: max-height 0.2s ease-out; } </style> <script> var acc = document.getElementsByClassName("accordion"); var i; for (i = 0; i < acc.length; i++) { acc[i].addEventListener("click", function() { this.classList.toggle("active"); var panel = this.nextElementSibling; if (panel.style.maxHeight) { panel.style.maxHeight = null; } else { panel.style.maxHeight = panel.scrollHeight + "px"; } }); } </script>
Voeg icoon toe
Voeg een symbool toe aan elke knop om aan te geven of het vouwbare inhoud geopend of gesloten is:
.accordion:after { content: '\02795'; /* “加号”(+)的 Unicode 字符 */ font-size: 13px; color: #777; float: right; margin-left: 5px; } .active:after { content: "\2796"; /* “减号”(-)的 Unicode 字符 */ }
- Vorige pagina Menu pictogram
- Volgende pagina Tab