菜单切换
FACESOHO知行者
心灵
记录
远方
赞赏工具
源代码:
点击运行
保存
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS/CSS 带图标手风琴 动画效果</title> </head> <body> <style> button.accordion { background-color:#eee; color:#444; cursor:pointer; padding:18px; width:100%; border:none; text-align:left; outline:none; font-size:15px; transition:0.4s; } button.accordion.active, button.accordion:hover { background-color:#ddd; } button.accordion:after { content:'\002B'; color:#777; font-weight:bold; float:right; margin-left:5px; } button.accordion.active:after { content:"\2212"; } div.panel { padding:0 18px; background-color:white; max-height:0; overflow:hidden; transition:max-height 0.2s ease-out; } </style> <h2>带图标手风琴</h2> <p>该实例选项添加了 “+” 号图标与 “-” 号图标。</p> <button class="accordion">选项 1</button> <div class="panel"> <p>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.</p> </div> <button class="accordion">选项 2</button> <div class="panel"> <p>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.</p> </div> <button class="accordion">选项 3</button> <div class="panel"> <p>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.</p> </div> <script> var acc = document.getElementsByClassName("accordion"); var i; for (i = 0; i < acc.length; i++) { acc[i].onclick = 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> </body> </html>
运行结果