javascript - 倒数计时器不会停在 0

标签 javascript timer countdown countdowntimer

出于某种原因,当时间到达 0 时,我的计时器不会停止。JSFiddle .这是我制作的倒数计时器的构造函数:

var Timer = function(opts) {
  var self = this;

  self.opts     = opts || {};
  self.element  = opts.element || null;
  self.minutes  = opts.minutes || 0;
  self.seconds  = opts.seconds || 30;

  self.start = function() {
    self.interval = setInterval(countDown, 1000);
  };

  self.stop = function() {
    clearInterval(self.interval);
  };

  function countDown() {
    if (self.minutes == 0 && self.seconds == 0) {
      self.stop();
    }

    self.seconds--;

    if (self.seconds <= 0) {
      self.seconds = 59;
      self.minutes--;
    }

    if (self.seconds <= 9) { self.seconds = '0' + self.seconds; }

    self.element.textContent = self.minutes + ' : ' + self.seconds;
  }
};

这是我的用法:

HTML:

<div id="timer"></div>

JavaScript:

var myTimer = new Timer({
  minutes: 0,
  seconds: 10,
  element: document.querySelector('#timer')
});

myTimer.start();

最佳答案

将倒计时功能更改为

function countDown() {
    self.seconds--; //Changed Line
    if (self.minutes == 0 && self.seconds == 0) {
      self.stop();
    }

    if (self.seconds < 0) { //Changed Condition. Not include 0
      self.seconds = 59;
      self.minutes--;
    }

    if (self.seconds <= 9) { self.seconds = '0' + self.seconds; }

    self.element.textContent = self.minutes + ' : ' + self.seconds;
  }

http://jsfiddle.net/8d5LLeoa/3/

关于javascript - 倒数计时器不会停在 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32622716/

相关文章:

Javascript 数组不打印空值

c++ - 使用 4 个 16 位定时器实现 400hz PWM

javascript - 我想在 angularjs 中为我的倒数计时器添加暂停按钮

c# - 野田时间倒计时

javascript - 我想显示非 ajax 调用的预加载器并在加载资源后隐藏预加载器?

javascript - 更改 leaflet markercluster 图标颜色,继承其余默认 CSS 属性

javascript - Sprockets//= 需要 jsbundling-rails (esbuild) - 如何包含 gem 提供的 JS?

r - setTimeLimit 如何在 R 中工作?

javascript - .hide() div 当计时器达到 0 时

javascript - 将 'custom' 函数添加到 javascript 对象