I Just want to set the time interval while i'm changing my tab/window in java script

Viewed 79

here's my code for focus in or out the window...

I want to set interval back when user came back to his window/screen

When interval clear it does not starts the counter where it was hold..

Please give a solution, Thanks in Advance..

  setInterval(function() {
    var fclass='havnt';
    if (document.hasFocus()) {
      fclass='have';
    }else {
       clearInterval(x);
    }
    var elems=['textOut','textFocus'];
    for (var i=0;i<elems.length;i++) {
        document.getElementById(elems[i]).
            setAttribute('class',fclass);
    }
},100);
// countdown
var deadline = new Date("sep 23, 2020 15:37:25").getTime();

   var x = setInterval(function() {

      var now = new Date().getTime();
      var t = deadline - now;
      var days = Math.floor(t / (1000 * 60 * 60 * 24));
      var hours = Math.floor((t%(1000 * 60 * 60 * 24))/(1000 * 60 * 60));
      var minutes = Math.floor((t % (1000 * 60 * 60)) / (1000 * 60));
      var seconds = Math.floor((t % (1000 * 60)) / 1000);
      document.getElementById("day").innerHTML =days ;
      document.getElementById("hour").innerHTML =hours;
      document.getElementById("minute").innerHTML = minutes;
      document.getElementById("second").innerHTML =seconds;

      if (t < 0) {

            clearInterval(x);

            document.getElementById("demo").innerHTML = "TIME UP";

            document.getElementById("day").innerHTML ='0';

            document.getElementById("hour").innerHTML ='0';

            document.getElementById("minute").innerHTML ='0' ;

            document.getElementById("second").innerHTML = '0'; }
      }, 1000);
1 Answers
let downloadTimer;
        var timeleft = 60;
        downloadTimer = setInterval(countDown,1000)
        function countDown(){
          document.getElementById("timer").innerHTML = timeleft ;
          timeleft -= 1;
          if(timeleft < 0){
            clearInterval(downloadTimer);
            document.getElementById("timer").innerHTML = "Done"
          }
        }
    
        $(window).blur(function(){
          console.log("blurred")
          clearInterval(downloadTimer);
        })
        $(window).focus(function(){
            console.log("focuesed")
            downloadTimer = setInterval(countDown,1000);
        })
Related