2016-08-26 6 views
1

ここで私はカウントダウンスクリプトを持っています。ループ内のsetIntervalタイマーを増やすには

1秒後に数値が減少します。私が作成したいのは、数値を減らすときにsetIntervalの時間を増やすループです。

たとえば、1秒後に9枚、次に約5秒後に8枚、次に15秒後に7枚、残りの枚数が1枚になるまで続きます。ここで

var count=10; 
var counter=setInterval(timer, 1000); 

function timer() 
{ 
    count=count-1; 
    if (count <= 0) 
    { 
    clearInterval(counter); 
    //counter ended, do something here 
    return; 
    } 

    document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!"; 
} 

は私のコードです:jsfiddle

+1

間違った機能を使用しています。 'setTimeout'を使います。 – Amit

答えて

0

私はこれを行うには整然と方法があります確信しているが、このコードは、あなたが(一番下に更新フィドルのリンクを)何をしたいか実現:

var count = 10; 
 
var interval = 1000; 
 
iterator(); 
 

 
function iterator() { 
 
    document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!"; 
 
    document.getElementById("interval").innerHTML="Timeout Interval: " + interval + "ms"; 
 
    count -= 1; 
 
    interval += 1000; 
 
    if(count>0) { 
 
    setTimeout(iterator, interval); 
 
    } 
 
}
<p id="timer"></p> 
 
<p id="interval"></p>

Updated Fiddle

+0

私はどのようにして次の間隔を選ぶことができますか?これは毎回1秒ずつ増加しています。 –

+0

次の間隔をどのように正確に選択しますか?ユーザー入力による? – awenborn

+0

配列を使用しています。私は何かを作成しようとしましたが、意図したとおりに動作しません。 https://jsfiddle.net/zhes4mbg/1/ –

関連する問題