<div class="box" style="margin-top:80px;margin-bottom:80px"> <div class="back"> <div class="container skills set" id="set"> <span id="percent">100</span><span>%</span> </div> </div> <div ><span id="damage">2000</span><span>/2000</span></div> </div> <button onclick="cli()" >click me </button>Arriba está el html y abajo está el js
var health = parseInt(document.getElementById("damage").innerHTML); if(health > 0){ var myInterval = setInterval(cli, 1000); } else { clearInterval(myInterval); console.log("sttoped"); } function cli(){ var rand = Math.floor(Math.random() *1000)+1; console.log("running"); var on=document.getElementById("percent"); var content = document.getElementById("set"); health = health - rand; var calc = Math.floor((health/2000)*100); document.getElementById("damage").innerHTML = Math.floor(health); if(health < 0){ document.getElementById("damage").innerHTML = 0; content.style.width = 0; on.innerHTML = "0"; } else{ on.innerHTML = calc; content.style.width = `${calc}%`; } }Estoy tratando de ejecutar la función por 1 segundo solo si la salud está por encima de 0 y detengo el intervalo si cae por debajo de 0, pero no funciona y no muestra ningún error en la consola, cualquier ayuda sería de gran ayuda. Aquí está el enlace codepen para la vista previa en vivo y la prueba .