Javascript 我想创建一个从50倒计时到1的倒计时,但我不&x27;I don’我不想在每个数字之间倒数相同的时间

Javascript 我想创建一个从50倒计时到1的倒计时,但我不&x27;I don’我不想在每个数字之间倒数相同的时间,javascript,html,Javascript,Html,我想创建一个从50倒计时到1的倒计时,但我不想在每个数字之间倒计时相同的时间。。如果这是50秒,我不想让它每秒倒数一个数字。我正在尝试创建一个带有随机性的倒计时,所以可能需要2秒才能到达下一个数字,有时需要0.5秒。我试着一直这样做到最后10秒,在计数器停在1号之前,它会慢一点 以下是我的HTML: <span id="count">50</span> JSFiddle: 如何让它在最后10秒钟内减速,以及如何给它添加一点随机性?var sec=50; 函数execut

我想创建一个从50倒计时到1的倒计时,但我不想在每个数字之间倒计时相同的时间。。如果这是50秒,我不想让它每秒倒数一个数字。我正在尝试创建一个带有随机性的倒计时,所以可能需要2秒才能到达下一个数字,有时需要0.5秒。我试着一直这样做到最后10秒,在计数器停在1号之前,它会慢一点

以下是我的HTML:

<span id="count">50</span>
JSFiddle:

如何让它在最后10秒钟内减速,以及如何给它添加一点随机性?

var sec=50;
函数execute(){
document.getElementById(“count”).innerHTML=sec;
}
(函数循环(){
如果(秒--==0){
return//到达0时停止
}
setTimeout(函数(){
执行();
循环()

},Math.round(Math.random()*1E3)+(sec您必须改变间隔时间。创建一个新变量,并在…hm,500和2000?之间指定一个随机值,至少在最后10“秒”内降低速度。 只需使用if子句

试试这个

sec = 50;

interval = setInterval(function () {
 sec--;
 document.getElementById('count').innerHTML = sec;

  if (sec == 1) {
   clearInterval(interval);
  }

}, (sec < 11) ? Math.floor(Math.random()*1000 + 500): Math.floor(Math.random()*1000 + 1500) ); 
sec=50;
间隔=设置间隔(函数(){
第二节;
document.getElementById('count')。innerHTML=sec;
如果(秒=1){
间隔时间;
}
},(第11节)数学地板(数学随机()*1000+500):数学地板(数学随机()*1000+1500);
我没有测试这个
编辑:嗯,它对我很有用。

至于更改间隔时间跨度,您不能使用setInterval。您需要使用setTimeout

sec = 50;

function interval(timespan){
    setTimeout(function () {
      sec--;
      document.getElementById('count').innerHTML = sec;
        if (sec > 10){
            interval(1500);
        }
      if (sec > 1) {
        interval(1000);
  }

    }, timespan); 
}
interval(1000)

我不确定你想要随机性在哪里。但这应该为你指明了正确的方向。

@JamesMontagne删除了jquery标记如果你想改变更新倒计时之间的延迟,那么你应该使用
setTimeout
而不是
setInterval
:@bluetoft这非常接近我想要的mness我指的是每一个数字之间的时间,不是跳过任何数字,而是从41到42的时间从41到40不等。我该如何改变它呢?@bluesoft我也注意到它超过了数字1,我该如何阻止它?
sec = 50;

function interval(timespan){
    setTimeout(function () {
      sec--;
      document.getElementById('count').innerHTML = sec;
        if (sec > 10){
            interval(1500);
        }
      if (sec > 1) {
        interval(1000);
  }

    }, timespan); 
}
interval(1000)