计时器不会停在 00:00

Timer wont stop at 00:00

我的倒数计时器不会停止 00:00 它一直持续到到达“-01:59”然后“-02:59”等等,我在这里和那里更改了一些代码但是它仍然继续前进

<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>

给你:应该将setTimeout赋给一个变量,当secs为0时,清除超时。

     // set minutes
    var mins = 1;

     // calculate the seconds (don't change this! unless time progresses at a      different speed for you...)
    var secs = mins * 10;
    var timeout;

    function countdown() {
      timeout = 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--;
        if (secs < 0) {
          clearTimeout(timeout);
          return;
        }
        countdown();
      }
    }

    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);
    }
    countdown();
<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>

希望对您有所帮助。