在不同的时间间隔内从相同的数字倒数到零

时间:2016-07-04 20:27:04

标签: javascript countdown

我正在尝试编写一个函数,该函数应该在给定时间内将某个数字(假设为1000)减少到零。 例如,在17秒内将1000减少到0。

我坚持this基本倒计时...我怎么能让它减少数量,考虑到它需要x秒才能达到零?

function update()
{
    xElement.innerHTML = maxscore-(new Date - start);
    setTimeout(update, 1);
}

2 个答案:

答案 0 :(得分:0)

这里,这段代码解决了这个问题:

var value = 1000;  // Starting value
var duration = 17000;  // Milliseconds
var startTime = Date.now();

function update() {
    var elapsed = Date.now() - startTime;
    var t = elapsed / duration;
    if (t < 0) t = 0;
    if (t > 1) t = 1;
    // Now t is a real number in from 0.0 to 1.0

    var currentValue = (1 - t) * value;  // Goes from 1000.0 to 0.0
    xElement.innerHTML = Math.round(currentValue).toString();
    if (elapsed < duration)
        setTimeout(update, 1);
}

update();

现场演示:https://jsfiddle.net/utued9vc/

答案 1 :(得分:0)

&#13;
&#13;
var start = 1000;
var end = 0;
var time = 17000; // in ms

var count = setInterval(function(){
  if (start < 0) {
    clearInterval(count);
  } else {
    console.log(start--);
  }
}, time/start);
&#13;
&#13;
&#13;