Я пытаюсь анимировать все LI в последовательности, но код анимирует все LI сразу.SetTimeout on vanilla JS on [] forEach.call не работает в последовательностях
Я не мог найти полезный ответ в любом месте, я знаю, как это сделать в JQuery, но что-то здесь не складывается.
Я попытался добавить Timeout к обработчику события и вызываемой функции, оба подхода не работают.
Это функция
function changeLi() {
setTimeout(function() {
[].forEach.call(li, function(li) {
li.style.transform = "translateX(200px)";
}, 900);
});
}
Ссылка на codepen:
http://codepen.io/damianocel/pen/PzYXmv
Я пытался добавить stopPropagation/preventDefault на вызов, но это не помогло.
Вашего соответствия скобки перепуталось. Исправьте его и правильно открепите свой код. – Bergi
У вас возникло фундаментальное непонимание [как работает setTimeout] (https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout). Также [stopPropagation] (https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation) и [preventDefault] (https://developer.mozilla.org/en-US/docs/ Web/API/Event/preventDefault), оба из которых применяются только к событиям. – Hamms
Вы используете 'setTimeout', как если бы он работал как' sleep'. См. [Здесь] (преобразование цикла Python while в Javascript) для решений. – Bergi