2016-07-23 62 views
0

我有JavaScript的倒計時的Javascript倒計時隨着暫停和恢復

var timersCount = 0; 
var timerCounter = setInterval(countTimers, 30000); 
countTimers(); 

function countTimers() 
{ 
    timersCount++; 

    var count = 26; 
    var counter = setInterval(timer, 1000); 
    function timer() 
    { 

     count = count-1; 
     if(count < 0) { 
     clearInterval(counter); 
     return; 
     } 

     document.getElementById("timer").innerHTML=count; 
    } 

document.getElementById("countTimers").innerHTML=timersCount; 
} 

HTML

<button id="pause">Pause</button> 
<button id="resue">Resume</button> 

這個函數運行正常。但現在我想添加暫停和恢復倒計時。是否可以將其設置爲我的功能。請幫忙。

+0

你要問有關添加按鈕動作或停止的時間間隔? –

+0

嗨奧斯卡,我要求暫停和恢復倒計時器使用按鈕 –

回答

2

你在這裏。首先,你只需要一個時間間隔,其次你應該有一些標誌告訴你什麼時候定時器暫停。然後它只是簡單的邏輯和2個監聽器。

var timersCount = 0; 
 
var pause = false; //is timer paused 
 

 
countTimers(); 
 

 
function countTimers() { 
 
    timersCount++; 
 

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

 
    function timer() { 
 
    if (!pause) { //do something if not paused 
 
     count = count - 1; 
 
     if (count < 0) { 
 
     clearInterval(counter); 
 
     setTimeout(countTimers, 5000); //start count from 26 again 
 
     return; 
 
     } 
 

 
     document.getElementById("timer").innerHTML = count; 
 
    } 
 
    } 
 

 
    document.getElementById("countTimers").innerHTML = timersCount; 
 
} 
 

 
document.getElementById('pause').addEventListener('click', function() { 
 
\t pause = true; 
 
}); 
 

 
document.getElementById('resume').addEventListener('click', function() { 
 
\t pause = false; 
 
});
<span id="timer"></span> 
 
<span id="countTimers"></span> 
 
<button id="pause">Pause</button> 
 
<button id="resume">Resume</button>

+0

嗨,對不起,遲交回復。我試過你的代碼,它的工作原理。但是當我點擊暫停時,count countTimers仍在運行。我怎樣才能暫停?我想休息約5秒,然後再次啓動它倒計時var timerCounter = setInterval(countTimers,30000); –

+0

@DavidAlwis它沒有運行,因爲在我的代碼中你永遠不會啓動它。沒有必要。你不應該用countTimers函數的間隔。如果你想休息一段時間,只要把''countTimers()''改成''setTimeout(countTimers,5)''在我的代碼裏,'if(count <0){''是。 – sielakos

+0

嗨@sielakos,假設如果我想休息約5秒鐘後再啓動它。可能嗎? –