我試圖找到這個問題的答案,但在任何地方都找不到。這里我有我的動畫代碼:let counters = document.querySelectorAll('.counter'); counters.forEach(counter => { counter.innerText = 0; let target = +counter.dataset.count; let step = 1; let countIt = function () { let displayedCount = +counter.innerText; // 0 if(displayedCount < target) { counter.innerText = displayedCount + step; setTimeout(countIt, 1); // countIt(); // here if i call countIt directly then my counter animation does not work. //but with setTimeout it works. } else { counter.innerText = target; } } countIt(); })所以我的問題是為什么會這樣?任何人都可以解釋一下引擎蓋下發生了什么?
為什么 setTimeout 用于 Javascript 中的計數器動畫?
米脂
2022-06-16 10:04:18