Как предотвратить сброс вращения стрелки при переключении меню «гармошка» в JavaScript?CSS

Разбираемся в CSS
Ответить
Anonymous
 Как предотвратить сброс вращения стрелки при переключении меню «гармошка» в JavaScript?

Сообщение Anonymous »

Начинающий ученик
Я работаю над меню-аккордеоном, которое переключает видимость пунктов меню и вращает значок стрелки, чтобы указать открытое/закрытое состояние. В большинстве случаев код 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «CSS»