Я пытаюсь реализовать таймер обратного отсчета в формате MM: SS, где 03:00
будет уменьшаться до 02:59
и т. Д.
Когда пользователь выбирает значение параметра 60, 180, или 300 секунд (1, 3, 5 минут), таймер будет установлен на это значение и будет отсчет каждую секунду.
function qs(selector) {
return document.querySelector(selector);
}
function startTimer() {
let timer = qs("select");
remainingSeconds = timer.options[timer.selectedIndex].value;
let timerDisplay = formatTimer(remainingSeconds);
qs("#time").innerHTML = timerDisplay;
timerId = setInterval(advanceTimer, 1000);
}
function formatTimer(remainingSeconds) {
let minutes = Math.floor(remainingSeconds / 60);
let seconds = remainingSeconds % 60;
if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
return minutes + ":" + seconds;
}
function advanceTimer() {
if (remainingSeconds = 0) {
clearInterval(timerId);
//end the game logic here
console.log("times up!");
} else {
qs("#time").innerHTML = remainingSeconds--;
}
}
window.onload = function(){
startTimer();
}
<select>
<option selected>30
<option>60
</select>
<div id="time"></div>
Прямо сейчас поведение таймера, например, заключается в том, что он начинается с 3:00
, а затем через 1 секунду уменьшается до 00:00
. Как я могу настроить поведение моих функций так, чтобы оно уменьшалось до ожидаемого результата.