0
Мой таймер обратного отсчета не останавливается 00:00, он просто продолжает движение до тех пор, пока он не достигнет «-01: 59», а затем «-02: 59» и так далее, я изменил часть кода здесь и там, но она по-прежнему продолжает идти и идтиТаймер не останавливается в 00:00
<html>
<head>
<title>Countdown</title>
<script type="text/javascript">
// set minutes
var mins = 1;
// calculate the seconds (don't change this! unless time progresses at a different speed for you...)
var secs = mins * 60;
function countdown() {
setTimeout('Decrement()', 1000);
}
function Decrement() {
if (document.getElementById) {
minutes = document.getElementById("minutes");
seconds = document.getElementById("seconds");
// if less than a minute remaining
if (seconds < 59) {
seconds.value = secs;
} else {
minutes.value = getminutes();
seconds.value = getseconds();
}
secs--;
setTimeout('Decrement()', 1000);
}
}
function getminutes() {
// minutes is seconds divided by 60, rounded down
mins = Math.floor(secs/60);
return ("0" + mins).substr(-2);
}
function getseconds() {
// take mins remaining (as seconds) away from total seconds remaining
return ("0" + (secs - Math.round(mins * 60))).substr(-2);
}
</script>
</head>
<body>
<div id="timer">
This is only valid for the next
<input id="minutes" type="text" style="width: 60px; border: none; background-color:none; font-size: 50px; font-weight: bold;"> :
<input id="seconds" type="text" style="width: 60px; border: none; background-color:none; font-size: 50px; font-weight: bold;">
</div>
<script>
countdown();
</script>
Кажется, что вы не очищаете свой тайм-аут, это то, что вы хотите? –
Почему вы думаете, что 'Decrement' должен прекратиться, если вы начнете новый тайм-аут, независимо от значения' minutes' и 'seconds'? – Andreas
FYI: setTimeout НЕ ТОЧНО, ваш результат таймера будет неправильным. – epascarello