Home > database >  Timer stop at 0
Timer stop at 0

Time:09-29

I have this working code and I would like the timer to stop at 0 instead of continuing with negative numbers

  function animateValue(id) {
  var obj = document.getElementById(id);
  var current =  localStorage.getItem('counter') ||  obj.innerHTML;
  obj.innerHTML = current;
  function decrement(){
    --current;
    obj.innerHTML = current;
    localStorage.setItem('counter', current);
    if(current != 0){
        setTimeout(decrement, (Math.floor(Math.random()*11)   10) * 1000);
    }
  }
  setTimeout(decrement, (Math.floor(Math.random()*11)   10) * 2000);
}

animateValue('counter');

i tried to add but to no avail

if (seconds === 0) {
    stop();
}

CodePudding user response:

Wrap the code inside decrement in an if statement like so:

function decrement() {
    if (current > 0) {
        --current;
        obj.innerHTML = current;
        localStorage.setItem('counter', current);
        setTimeout(decrement, (Math.floor(Math.random()*11)   10) * 1000);
    }
}

CodePudding user response:

If you use setInterval for it, you can deactivate it with clearInterval.

It will work at least that I think

CodePudding user response:

For this bit you tried,

   if (seconds === 0) {
    stop();
}

Is this not meant to be

if (current <= 0) {
    stop(); //I assume you have some code to stop it
}
  • Related