【发布时间】:2020-09-25 20:31:00
【问题描述】:
我正在创建一个第一个网站,并希望有一个 0-100% 的进度条,它有几秒钟的延迟才能在开始时首先淡入(我可以在 CSS 中做到这一点),但进度当我输入以下内容时,条形脚本似乎没有延迟:
HTML:
<div class="loading">
<div class="percent">100%</div>
<div class="progress-bar">
<div class="progress"></div>
</div>
</div>
Javascript:
var percent = document.querySelector(".percent");
var progress = document.querySelector(".progress");
var count = 1;
var per = 1;
var loading = setInterval(animate, 25);
setTimeout(animate, 2000);
function animate() {
if (count == 100 && per == 100) {
clearInterval(loading);
} else {
per = per + 1;
count = count + 1;
progress.style.width = per + "px";
percent.textContent = count + "%";
}
}
我已经尝试过了,但这甚至没有为进度条设置动画:
setTimeout(function animate() {
if (count == 100 && per == 100) {
clearInterval(loading);
} else {
per = per + 1;
count = count + 1;
progress.style.width = per + "px";
percent.textContent = count + "%";
}
}, 2000);
我还尝试将 setTimeout 放入一个名为 timeInMilliseconds 的 var 中,设置为 2000,然后用它代替时间,但这没有用。
抱歉,如果答案真的很明显,这是全新的,我一直在尝试尽可能多地学习教程。提前致谢。
【问题讨论】:
-
代码对我来说看起来不错(除了
setTimeout,只是setInterval应该按照您的意愿执行)-您确定它在相关DOM元素存在后运行吗?控制台是否有任何错误。
标签: javascript html function animation settimeout