如何在循环中增加setInterval定时器
How to increase setInterval timer in loop
我这里有一个倒计时脚本。
1秒后数字递减。我想要创建的是一个循环,它在减少数字时增加 setInterval 的时间。
例如它显示 1 秒后剩余 9 个副本,然后大约 5 秒后剩余 8 个副本,然后 15 秒后剩余 7 个副本,依此类推,直到达到一个。
var count=10;
var counter=setInterval(timer, 1000);
function timer()
{
count=count-1;
if (count <= 0)
{
clearInterval(counter);
//counter ended, do something here
return;
}
document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!";
}
这是我的代码:jsfiddle
我确定有一种更简洁的方法可以做到这一点,但这段代码可以实现你想要做的事情(在底部更新 fiddle link):
var count = 10;
var interval = 1000;
iterator();
function iterator() {
document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!";
document.getElementById("interval").innerHTML="Timeout Interval: " + interval + "ms";
count -= 1;
interval += 1000;
if(count>0) {
setTimeout(iterator, interval);
}
}
<p id="timer"></p>
<p id="interval"></p>
我这里有一个倒计时脚本。
1秒后数字递减。我想要创建的是一个循环,它在减少数字时增加 setInterval 的时间。
例如它显示 1 秒后剩余 9 个副本,然后大约 5 秒后剩余 8 个副本,然后 15 秒后剩余 7 个副本,依此类推,直到达到一个。
var count=10;
var counter=setInterval(timer, 1000);
function timer()
{
count=count-1;
if (count <= 0)
{
clearInterval(counter);
//counter ended, do something here
return;
}
document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!";
}
这是我的代码:jsfiddle
我确定有一种更简洁的方法可以做到这一点,但这段代码可以实现你想要做的事情(在底部更新 fiddle link):
var count = 10;
var interval = 1000;
iterator();
function iterator() {
document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!";
document.getElementById("interval").innerHTML="Timeout Interval: " + interval + "ms";
count -= 1;
interval += 1000;
if(count>0) {
setTimeout(iterator, interval);
}
}
<p id="timer"></p>
<p id="interval"></p>