【问题标题】:How to make this countdown repeat after the time runs out?时间用完后如何让这个倒计时重复?
【发布时间】:2022-11-02 05:57:54
【问题描述】:

我对 Javascript 很陌生,我发现自己陷入了这个问题。我想在时间用完后重复这个倒计时,但是我不太确定该怎么做,而且我试图让它工作失败了。希望帮助如何做到这一点,谢谢。

function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

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

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

        if (--timer < 0) {
             // here's the problem. not sure how to make it repeat
        }
    }, 1000);
}

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

尝试使用 clearInterval() 和 setTimeout() 但倒计时没有工作,要么超过 00:00(00:0-1 等),要么根本不起作用。

【问题讨论】:

  • 您必须将“计时器”变量重置为duration。从字面上看,只需将评论替换为timer = duration

标签: javascript


【解决方案1】:

您可以重置timer

function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

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

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

        if (--timer < 0) {
             timer = duration;
        }
    }, 1000);
}

【讨论】:

  • 为什么+0?没必要。
猜你喜欢
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2013-03-18
  • 2014-07-20
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
相关资源
最近更新 更多