天天看點

JavaScript中定時器的暫停和繼續

 對于JavaScript的定時器來說沒有嚴格意義上的暫停和重新開機,隻有清除停止,但是可以通過一些‘障眼法’實作

allChild[index].onclick = function(){//當點選目标且滿足下面的條件時 讓計時器時間暫停
                 if(gamInt == true){
                             $("#tu").css("display","block");
                             //計時器暫停(清除定時器)
                             clearInterval(countdownTimer);
                             
                             //延遲2s後遊戲繼續 計時器暫停結束
                             setTimeout(function(){
                                         // 移除所有的圖檔
                                         removeImgFun();
                                         $("#tu").css("display","none");
                                         imgNum++;
                                         if(imgNum >= 10){
                                             imgNum = 10;
                                         }
                                         createImgFun();


                                         //定時器繼續接之前的時間增加 繼續播放(将之前的定時器重新引用一次 包括定時器的名字(必須要有 不然容易引起電腦當機)完整引入)
                                         countdownTimer = setInterval(function (){
                                            countdownNum -= 0.01;
                                            //保留兩位小數
                                            countdownNum = countdownNum.toFixed(2);
                                            if (countdownNum <= 0){
                                                
                                                clearInterval(countdownTimer);
                                                //遊戲結束
                                                alert("遊戲結束!");
                                                //房祖名不能再點選(分數不再計數)
                                                gamInt = false;
                                                
                                            }
                                            time.innerHTML = "倒計時:" + countdownNum + "秒";
                                        },10);
                             },2000)
                             
                         
                             //計分
                             scores += 1;
                             score.innerHTML = "第" + scores + "關";
                             if(scores > 8){
                                 $("#wc").css("display","block");
                                 $("#haha").css("display","none");
                                 $("#cj").on("click",award());
                                 $("#sm").on("click",explain());
                             }
                     }
             }      

下面是我的公衆号,大家可以關注一下,可以一起學習,一起進步:

JavaScript中定時器的暫停和繼續