Я работаю над меню-аккордеоном, которое переключает видимость пунктов меню и вращает значок стрелки, чтобы указать открытое/закрытое состояние. В большинстве случаев код JavaScript работает так, как и ожидалось, но я заметил проблему: при переключении между разделами аккордеона вращение стрелки иногда сбрасывается или ведет себя неожиданно.
Эта логика работает, но когда я быстро нажимаю он обновляется автоматически или работает немного медленнее.
Код: Выделить всё
function accordian(disp) {
var change = document.getElementById(disp);
var allsection = document.getElementsByClassName("menu-items");
var allarrows = document.getElementsByClassName("down-arrow");
for (let i = 0; i < allsection.length; i++) {
allarrows[i].style.transform = "rotate(45deg)";
allarrows[i].style.transition = "transform 100ms linear";
}
if (change.style.display === "block") {
change.style.display = "none";
} else {
change.style.display = "block";
var relatedAccordion = change.previousElementSibling;
var arrow = relatedAccordion.querySelector(".down-arrow");
arrow.style.transform = "rotate(225deg)";
arrow.style.transition = "transform 100ms linear";
}
}
Код: Выделить всё
Burger
[i][/i]
Cheese Burger
Подробнее здесь: https://stackoverflow.com/questions/792 ... menus-in-j