js实现网页同时进行多个倒计时功能


Posted in Javascript onFebruary 25, 2019

本文实例为大家分享了js实现网页同时进行多个倒计时的具体代码,供大家参考,具体内容如下

创建一个时间类Timer.

每个商品的倒计时生成一个实例:var time = new Timer();

/**
*startime 应该是毫秒数
*/
 
var Alarm = function (startime, endtime, countFunc, endFunc) {
    this.time = Math.floor((endtime - startime) / 1000); //时间
    this.countFunc = countFunc; //计时函数
    this.endFunc = endFunc; //结束函数
    this.flag = 't' + Date.parse(new Date()); //
  };
Alarm.prototype.start = function () {
  var self = this;
 
  self.flag = setInterval(function () {
    if (self.time < 0) {
      clearInterval(self.flag);
      self.endFunc();
      console.log('计时结束');
    } else {
      var minute, hour, day, second;
      day = Math.floor(self.time / 60 / 60 / 24) < 10 ? '0' + Math.floor(self.time / 60 / 60 / 24) : Math.floor(self.time / 60 / 60 / 24);
      hour = Math.floor(self.time / 60 / 60 % 24) < 10 ? '0' + Math.floor(self.time / 60 / 60 % 24) : Math.floor(self.time / 60 / 60 % 24);
      minute = Math.floor(self.time / 60 % 60) < 10 ? '0' + Math.floor(self.time / 60 % 60) : Math.floor(self.time / 60 % 60);
      second = Math.floor(self.time % 60) < 10 ? '0' + Math.floor(self.time % 60) : Math.floor(self.time % 60);
      //倒计时执行函数
      self.countFunc(second, minute, hour, day);
      self.time--;
    }
  }, 1000);
}

如果调用:

var time1 = new Alarm(startime, endtime, countFunc, endFunc);
time1.start();
 
var time2 = new Alarm(startime, endtime, countFunc, endFunc);
time2.start();
...

调用示例:

var countTime = function () {
  var eles = $('.count_time'),
    len = eles.length;
  for (; len > 0; len--) {
    var ele = eles.eq(len - 1);
    (function (ele) {
      startTime = new Date(ele.attr('data-start-time')).getTime(),
          endTime = new Date(ele.attr('data-end-time')).getTime(),
          alarm = new Alarm(startTime, endTime, function (second, minute, hour, day) { //计时钟
            ele.text(hour + ':' + minute + ':' + second);
          }, function () { //倒计时结束
            ele.text('00:00:00');
            window.location.reload();
          });
      alarm.start();
    })(ele);
  }
};
countTime();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery实现的服务器验证控件的启用和禁用代码
Apr 27 Javascript
关于div自适应高度/左右高度自适应一致的js代码
Mar 22 Javascript
jsonp原理及使用
Oct 28 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
javascript+HTML5自定义元素播放焦点图动画
Feb 21 Javascript
完美实现八种js焦点轮播图(下篇)
Apr 20 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
dul无法加载bootstrap实现unload table/user恢复
Sep 29 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
构建Vue大型应用的10个最佳实践(小结)
Nov 07 Javascript
vue2.0 解决抽取公用js的问题
Jul 31 Javascript
js实现一个页面多个倒计时的3种方法
Feb 25 #Javascript
Vue自定义指令上报Google Analytics事件统计的方法
Feb 25 #Javascript
写一个Vue Popup组件
Feb 25 #Javascript
利用Webpack实现小程序多项目管理的方法
Feb 25 #Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 #Javascript
JavaScript中的事件与异常捕获详析
Feb 24 #Javascript
Vue 组件注册实例详解
Feb 23 #Javascript
You might like
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
django之常用命令详解
2016/06/30 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python ATM功能实现代码实例
2020/03/19 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
Python自动创建Excel并获取内容
2020/09/16 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
员工评语大全
2014/01/19 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
股权投资协议书
2016/03/23 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
mysql 带多个条件的查询方式
2021/06/05 MySQL
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL