Я заимствовал код JS, чтобы помочь мне создать таймер на 65 секунд. Мои знания JS являются базовыми, но мне удалось изменить сценарий, чтобы работать так, как я этого хочу. Однако, когда я нажимаю кнопку play
, таймер ускоряется со второго раунда.таймер ускоряется во втором раунде.
HTML:
<div id="rightCol">
<span id="countdown" class="timer">Timer About to Start! </span>
<div>
<input type="button" value="Play" id="play">
</div>
</div>
JS:
var seconds = 65;
function secondPassed() {
var minutes = Math.round((seconds - 30)/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
if (seconds == 0) {
clearInterval(countdownTimer);
document.getElementById('countdown').innerHTML = "Time's Up!";
document.getElementById("passage_text").disabled = true;
} else {
seconds--;
}
}
var countdownTimer = setInterval('secondPassed()', 1000);
$("#play").click(function(){
seconds = 65;
var countdownTimer = setInterval('secondPassed()', 1000);
$('#passage_text').attr('disabled', false).focus();
$("#passage_text").val('');
});
Я читал некоторые другие ответы похожи на мои Count down timer speeds up, но я не совсем понимаю, как функция secondPassed()
работает в почини это.
код устанавливает два таймера, а не один. Избавьтесь от одного. Кроме того, это займет больше времени, чем 65 секунд, так как * setInterval * не запускается точно в указанное время и не самовосстанавливается, если он дрейфует. – RobG