2016-07-04 5 views
0

異なる時間間隔でゼロにまで同じ番号から数え与えられた時間内に、ゼロに(さんが1000をしましょう)。 たとえば、17秒で1000を0に減らします。私は特定の数を減らす必要がある関数を記述しようとしている

私はthis基本的なカウントダウンにこだわっている...どのように私は、それがゼロに到達するためにX秒を取る必要があることを考慮して、数を減らす作ることができますか?ここで

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

あなたが与えられた時間内にどれだけの刻みたいのか、あなたがそれを減らすたびにどれくらい減らしたいのですか?ゼロになる。 xElement.innerHTML = maxscore-(maxscore/17)のようなものになります。もしあなたが17秒間1秒間に1回減少させたいのであれば、設定されたタイムアウト時間の変数は1秒間10000になると思いますが、私は確信していません –

答えて

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/

0

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);

+0

これは、ミズ。 – binoculars

関連する問題