我試圖在一個序列中動畫所有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