Estoy tratando de crear un temporizador de cuenta regresiva JS simple. El temporizador... no funciona.
function setTimer() { var x = parseInt(document.getElementById("input").value); var timer = Math.floor(x * 60); var mins = Math.floor(timer / 60); var secs = Math.floor(timer % 60); var text = document.getElementById("output"); text.innerHTML = mins + " : " + secs; timer--; setTimeout('setTimer()', 1000); } <input type="text" id="input"> <button id="btn" onClick="setTimer()"> Start </button>El temporizador no se está reduciendo. ¿Puedes ayudarme?
Su variable timer no está cambiando porque está tomando el valor nuevamente de la entrada. He simplificado su código a continuación
<html> <script> var timer; function setTimer() { var x = parseInt(document.getElementById("input").value); timer = Math.floor(x * 60); handleTimer(timer); } function handleTimer(timer) { var mins = Math.floor(timer / 60); var secs = Math.floor(timer % 60); document.getElementById("output").value = mins + " : " + secs; timer--; setTimeout(function () { handleTimer(timer); }, 1000); } </script> <input type="text" id="input" placeholder="input" /> <input type="text" id="output" placeholder="output" /> <button id="btn" onClick="setTimer()">Start</button> </html>