var btn = document.querySelector('.btn');
var activePanel = document.querySelector('.active');
var hiddenPanel = document.querySelectorAll("section > div:not(.active)");
var i;
for (i = 0; i < btn.length; i++) {
btn[i].addEventListener("click", function() {
var panel = this.nextElementSibling;
var otherPanels = document.querySelectorAll("section > div:not(.active)");
panel.classList.add('.active');
otherPanels.classList.add('.hidden');
}
});
};
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.btn {
color: white;
background-color: brown;
cursor: pointer;
}
.panel {
display: none;
}
.active {
display: block;
}
.hidden {
display: none;
}
<body>
<section id="accordion">
<h3 class="btn">button1</h3>
<div class="panel">panel1</div>
<h3 class="btn">button2</h3>
<div class="panel">panel2</div>
<h3 class="btn">button3</h3>
<div class="panel">panel3</div>
<h3 class="btn">button4</h3>
<div class="panel">panel4</div>
</section>
</body>
Здравствуйте,
Пожалуйста, я пытаюсь написать javascript аккордеон, но мой код не работает
что я хочу сделать, так это то, что когда я нажимаю на кнопку, она показывает только свою панель, добавляя активный класс только к этой панели и добавляя скрытый класс ко всем другим панелям одновременно
, поэтому, когда я нажимаю На кнопке она переключается вверх и вниз
, и отображается только одна панель, затем, когда я нажимаю на другую кнопку, она скользит вниз по собственной панели и автоматически поднимается на другую панель
, пожалуйста, помогите и большое спасибо заранее