2017-10-05 43 views
0

所以我想實現的是,如果沒有人移動鼠標或點擊或觸摸(基本上是在網站上沒有活動)時間(5分鐘)以文本動畫開始,但文本應該每15秒循環一次,直到有人再次在網站上開始討論。setInterval()在一些空閒超時後循環,並在鼠標移動或觸摸時復位

,我有這個功能至今工作於一些點

 $(function(){ 
      var idleTimer; 
      var idleInterval; 
      function resetTimer(){ 
      clearTimeout(idleTimer); 
      clearInterval(idleInterval); 
      idleTimer = setTimeout(idleloop,30 * 1000); 
      } 
      $(document.body).bind('mousemove keydown click',resetTimer); //space separated events list that we want to monitor 
      resetTimer(); // Start the timer when the page loads 
     }); 

     function idleloop() { 
      idleInterval = setInterval(whenUserIdle,15 * 1000); 
     } 
     function whenUserIdle(){ 
      if(isOpened) { 
       goHome(); 
      } else { 
       if(isBurst) { 
        Partallan.start(); 
       } else { 
        Partallan.stop(); 
       } 
      } 
     }; 

但是使用這個時候,循環間隔不復位,clearInterval應停止間隔循環,但是當我開始的一段時間後,再次瀏覽網站不活動的setInterval循環只是打斷我,並繼續每15秒循環。

我無法弄清楚如何在網站上有活動時停止一切,並在沒有任何活動時繼續。

回答

0

請檢查此琴 - https://jsfiddle.net/q4500voy/

在這裏,我對document代替document.body

 $(document).bind('mousemove keydown click',resetTimer); 

看來,document.body選擇工作了僅​​事件添加事件。