我試圖寫一個函數,它應該在給定的時間內將某個數字(比方說1000)減少到零。 例如,在17秒內將1000減小到0。在不同的時間間隔從相同的數字倒數到零
我被困在this基本倒計時......我怎麼能讓它減少的數量,考慮到它應該需要x秒達到零?
function update()
{
xElement.innerHTML = maxscore-(new Date - start);
setTimeout(update, 1);
}
我試圖寫一個函數,它應該在給定的時間內將某個數字(比方說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);
當間隔很小時,這似乎不起作用,比如750女士。 – binoculars
多少增量你要在給定的時間,或每次你減少它直到你想減少多少達到零。它只是像xElement.innerHTML = maxscore-(maxscore/17);如果你想每秒鐘減少一次,持續17秒,但是我認爲設置的超時時間變量爲10000秒,但我不確定 –