在JS中替换setInterval计时器

时间:2016-05-16 18:29:36

标签: javascript jquery animation

我有一个具有特定速度的动画,该值从输入范围传递。当页面加载动画时,默认速度为16,如下所示。

HTML:

 <input type="range" min="1" max="30"   /><br>

JS:

  animateInterval = setInterval(animate, 16);
    $("input").change(function(){
    var value = $(this).val();
   animateInterval = setInterval(animate,  value);
    })

每当我通过输入范围滑块选择新的速度时,我希望动画速度运行的变量号不会替换默认速度,它实际上是添加到默认速度。因此,当页面加载并且它在16运行时,我决​​定将滑块拖动到10,动画不会在10运行,它在26运行!这不允许我减慢动画速度,也不允许我决定自己的最大速度,因为它可以不断增加。

我怎样才需要调整上面的代码,以便选择任何值的时钟,尽管在页面加载时需要有默认速度?

1 个答案:

答案 0 :(得分:4)

在设置新的间隔前清除上一个间隔:

3

你现在正在做的是每次都设置另一个间隔,并且所有时间都是并行。