在不同的时间间隔从相同的数字倒数到零
Count down from same number to zero in different time intervals
我正在尝试编写一个函数,它应该在给定时间内将某个数字(比如 1000)减少到零。
例如17秒内从1000减少到0。
我卡在了 this 基本倒计时...考虑到需要 x 秒才能达到零,我怎样才能减少倒计时?
function update()
{
xElement.innerHTML = maxscore-(new Date - start);
setTimeout(update, 1);
}
这里,这段代码解决了问题:
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();
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);
我正在尝试编写一个函数,它应该在给定时间内将某个数字(比如 1000)减少到零。 例如17秒内从1000减少到0。
我卡在了 this 基本倒计时...考虑到需要 x 秒才能达到零,我怎样才能减少倒计时?
function update()
{
xElement.innerHTML = maxscore-(new Date - start);
setTimeout(update, 1);
}
这里,这段代码解决了问题:
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();
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);