暂停倒计时 javascript jquery

Posted

技术标签:

【中文标题】暂停倒计时 javascript jquery【英文标题】:pause countdown javascript jquery 【发布时间】:2014-11-11 22:50:23 【问题描述】:

http://jsfiddle.net/vvccvvcc/mu45bptk/

如何暂停计时器?我希望它在达到 5 秒时停止

我试过这个,就像在小提琴中看到的那样

else 
        isWaiting = true;
        seconds--;

        if (seconds == 5) 
            seconds=seconds;     




    

没用

【问题讨论】:

为什么不再次清除间隔? clearInterval( countdownTimer ); 【参考方案1】:

定时器由setInterval(GameTimer, 1000);初始化

    if (seconds == 5) 
        clearInterval(countdownTimer);
     else 
         seconds--;
    

您需要清除间隔才能停止调用该函数。或者,如果您不想清除间隔,您可以说

    if (seconds > 5) 
         seconds--;
    

您编写它的方式,second 会减少,而不管条件如何(因为它在 if 语句之前),因此,second = second 变得无关紧要。

【讨论】:

【参考方案2】:

这就是你要找的吗? 小提琴:http://jsfiddle.net/mu45bptk/2/

var isWaiting = false;
var isRunning = false;
var seconds = 10;
var countdownTimer;
var finalCountdown = false;

function GameTimer() 
    if (isWaiting) 
        return;   
    
    var minutes = Math.round((seconds - 30) / 60);
    var remainingSeconds = seconds % 60;
    if (remainingSeconds < 10) 
        remainingSeconds = "0" + remainingSeconds;
    
    document.getElementById('waiting_time').innerhtml = minutes + ":" + remainingSeconds;
    if (seconds == 0) 

        if (finalCountdown) 
            clearInterval(countdownTimer);
         else 
            finalCountdown = true;
        

     else              
        if (seconds == 5)             
            isWaiting = true;  
         else 
            seconds--;
        




    

countdownTimer = setInterval(GameTimer, 1000);

只有在seconds == 5 时才需要设置isWaiting,然后在每次运行GameTimer() 时检查isWaiting

【讨论】:

以上是关于暂停倒计时 javascript jquery的主要内容,如果未能解决你的问题,请参考以下文章

javascript定时器如何暂停及继续

JavaScript计时器

JavaScript 计时事件

JavaScript计时事件

暂停 jquery 倒计时按钮

暂停后继续倒计时