作者:U友50141126 | 来源:互联网 | 2023-01-31 17:00
我试图创建一个百分比计数器,但它没有做我需要的东西.它只显示100%.但是我需要一步一步显示0到100%!我该怎么改变它?
setInterval(function per(p = 0) {
for (p = 1; p <= 100; p++) {
$(".percentage").text(p + "%");
}
}, 1000);
1> Rory McCross..:
问题是因为for
无论setInterval如何,循环都会在几分之一秒内运行.
要解决此问题,您可以更改逻辑以使用递归,然后将每次迭代延迟1秒,如下所示:
function updatePercentage(p) {
p = p || 0;
$(".percentage").text(p + "%");
if (p <100) {
setTimeout(function() {
updatePercentage(++p);
}, 1000);
}
}
updatePercentage();