javascript - js setInterval - 逐渐提高速度

标签 javascript setinterval

我怎样才能让 setInterval 逐渐提高速度,比如从 1000 毫秒开始,然后在几秒钟内逐渐下降到 40 毫秒,每次 1 毫秒。

有什么想法吗?

这是我的代码:

setTimeout(function() {bonustimer = setInterval(function() { handleTimer2(rushcount); }, 40);}, 1000);


handleTimer2 = function() {
if(rushcount === -1) {
clearInterval(bonustimer);      
} else {
$('.digit-wrapper').html(rushcount);
rushcount--;
}}

最佳答案

在这里设置间隔可能不是您想要的,因为您最终会杀死它并在每次迭代时重做它。使用 setTimeout 更容易,可能是这样的:

(function () {
    var interval = 1001;
    timer = function() {
        --interval;
        //do your thing here

        if (interval >= 40) {
            setTimeout(timer, interval);
        }
    };
    timer();
})();

另请注意,如果您一次只将间隔减少 1 毫秒,从 1000 减少到 40,那么完成所有这些迭代需要相当长的时间。您可以随时更换 --interval通过其他公式,例如 interval = interval*0.9; (每次迭代减少 10%)或任何你想要的公式。

关于javascript - js setInterval - 逐渐提高速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004792/

相关文章:

javascript - 如何从 Google API 获取 Ember 中自动完成字段的数据

javascript - 设置每个图像在不同时间的间隔

javascript - 在同步函数中调用异步函数 (setinterval) 后返回值

javascript - 在循环结束之前使用 for 循环的每个值

javascript - 两个具有相同 "id"属性的独立文本框

javascript - 如何切换选择中所有元素的类别?

javascript - React Native 中对象的顺序对象

javascript - setInterval 如何异步运行

javascript - setInterval 仅触发一次

javascript - 使用 jQuery 添加的 onclick 处理程序在第一次使用后不起作用