我试图逐渐贬低执行setinterval函数内部函数的时间间隔
以下是原则的抽象代码:
var speed = 100;
window.setInterval( speed-= 0.01 , speed);
我相信在第一次执行setInterval并使用时,速度的值是一次,而不是在每次执行时都采用。 如果是这样,我怎么能解决这个问题呢?我通过将间隔设置为1000并设置"速度 - ="来验证这一点。到999,然后打印速度值。 该值从1000跳到1然后继续下降999,即使在值变为负值之后,setinterval内的函数也每1秒执行一次。
答案 0 :(得分:0)
使用更改间隔递归调用setTimeout的示例。
function go() {
var node = document.createElement('div');
node.innerHTML = speed.toFixed(2);
document.body.appendChild(node);
if (speed > 1) {
setTimeout(go, speed);
}
speed *= 0.9;
}
var speed = 100;
go();