You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止JavaScript倒计时计时器重置,使其停留在0:00?

解决倒计时计时器到0:00后重置的问题

你的问题出在setInterval的循环逻辑里:当计时器归0后,代码把timer重置回了初始时长(duration),导致计时器重新开始。要实现到0:00后停止并保持显示,需要修改两个关键点:

  • 保存定时器的引用,以便在需要时停止它
  • 调整倒计时结束后的逻辑,不再重置timer,而是固定显示0:00并终止定时器

修改后的完整代码如下:

JavaScript 代码

function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    // 保存定时器ID,用于后续清除
    var intervalId = setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = minutes + ":" + seconds;

        // 当timer还没到0时才继续递减
        if (timer > 0) {
            timer--;
        } else {
            // 到0后清除定时器,停止执行
            clearInterval(intervalId);
        }
    }, 1000);
}

window.onload = function () {
    var twoMinutes = 60 * 2,
        display = document.querySelector('#time');
    startTimer(twoMinutes, display);
};

HTML 代码

<span id="time">2:00</span>

关键改动说明

  1. 新增intervalId变量存储setInterval的返回值,这是停止定时器的核心依据
  2. 调整递减逻辑:仅当timer > 0时执行timer--,避免出现负数计时
  3. 当timer归0时,调用clearInterval(intervalId)终止定时器,确保后续循环不再执行,从而固定显示0:00

内容的提问来源于stack exchange,提问作者ftc_community

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:02:05