【发布时间】:2019-03-26 18:21:30
【问题描述】:
我的静态 HTML/CSS/JS 网站上有手风琴小部件。
默认情况下所有手风琴都是关闭的。
用户可以打开其中任何一个,并且这些将保持打开状态,直到用户通过单击手风琴标题手动关闭它们。
当用户点击打开另一个手风琴时,如何关闭以前打开的手风琴?
我使用这个模板创建了我的手风琴:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_accordion_animate
我把 HTML 和 JS 都放在了 HTML 文件中:
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";
}
});
}
.accordion {
color: #fff;
background-color: #00000042;
cursor: pointer;
padding: 10px 10px;
margin-top:20px;
width: 100%;
border: 1px solid #00000042;
text-align: left;
outline: none;
transition: 0.4s;
}
.active, .accordion:hover {
background-color: #00000042;
border: 1px solid #fc8e2d;
}
.panel {
padding: 0 18px;
font-size: 18px;
background-color: #00000042;
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease-out;
}
<button class="accordion"><span class="faq__question-heading">Title1</span></button>
<div class="panel">
<p style="padding:18px 0;">description1</p>
</div>
<button class="accordion"><span class="faq__question-heading">Title2</span></button>
<div class="panel">
<p style="padding:18px 0;">description2</p>
</div>
<button class="accordion"><span class="faq__question-heading">Title3</span></button>
<div class="panel">
<p style="padding:18px 0;">description3</p>
</div>
<script>
</script>
【问题讨论】:
标签: javascript html css