倒计时组件

Posted 盛夏、光年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了倒计时组件相关的知识,希望对你有一定的参考价值。

倒计时组件:

function Countdown(leavetime) {
        this._init(leavetime);
    }

  Countdown.prototype = {
      _init : function (leavetime) {
          this.timer = null;
          this.leavetime = leavetime || 0;
          this.clock = {};
          this.clock.leavetimeSec = Math.floor(this.leavetime / 1000);
      },
      _format : function () {
          this.clock.sec = this.clock.leavetimeSec % 3600 % 60;
          this.clock.min = Math.floor(this.clock.leavetimeSec % 3600 / 60);
          this.clock.hours = Math.floor(this.clock.leavetimeSec / 3600);
          this.clock.secStr = String(this.clock.sec).length == 1 ? (‘0‘ + this.clock.sec) : String(this.clock.sec);
          this.clock.minStr = String(this.clock.min).length == 1 ? (‘0‘ + this.clock.min) : String(this.clock.min);
          this.clock.hourStr = String(this.clock.hours).length == 1 ? (‘0‘ + this.clock.hours) : String(this.clock.hours);
      },
      run : function (doFn, endFn) {
          var that = this;
          this._format();
          doFn(this.clock);
          if (this.clock.leavetimeSec == 0) {
              clearTimeout(this.timer);
              endFn(this.clock);
              return this;
          }
          this.clock.leavetimeSec --;
          this.timer = setTimeout(function () {
              that.run(doFn, endFn);
          }, 1000)
      }
  };

 

使用:(为说明使用,运用了jquery获取dom对象)

html: <div id="box"></div>

var Countdown = new Countdown(30000000); // 实例化倒计时

// 运行倒计时
Countdown.run(function (clock) { // clock 是个对象 挂载着小时 分钟 秒钟
    $(‘#box‘).text(clock.hourStr + ‘:‘ + clock.minStr + ‘:‘ + clock.secStr);
  }, function () { // 这里写倒计时到点的callback
    alert(‘结束了!‘)
  });

 

  

以上是关于倒计时组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用片段和计时器的选项卡式活动上更新 UI

使用Timer组件实现倒计时

微信小程序倒计时组件开发

VsCode 代码片段-提升研发效率

手把手带你分解 Vue 倒计时组件

如何实现React原生倒计时圈