Tengo este código de trabajo y me gustaría que el temporizador se detuviera en 0 en lugar de continuar con números negativos
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');Traté de agregar pero fue en vano
if (seconds === 0) { stop(); }Envuelva el código dentro del decremento en una declaración if como esta:
function decrement() { if (current > 0) { --current; obj.innerHTML = current; localStorage.setItem('counter', current); setTimeout(decrement, (Math.floor(Math.random()*11) + 10) * 1000); } }Si usa setInterval para ello, puede desactivarlo con clearInterval .
Funcionará al menos eso creo.
Por este poco que intentaste,
if (seconds === 0) { stop(); }¿No está destinado a ser esto?
if (current <= 0) { stop(); //I assume you have some code to stop it }