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 相关文章推荐
Javascript new关键字的玄机 以及其它
Aug 25 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
ExtJS4 动态生成的grid导出为excel示例
May 02 Javascript
Jquery解析json字符串及json数组的方法
May 29 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
js实现导航吸顶效果
Feb 24 Javascript
jQuery上传多张图片带进度条样式(DEMO)
Mar 02 Javascript
Angular2中如何使用ngx-translate进行国际化
May 21 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
Angularjs实现多图片上传预览功能
Jul 18 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
PHP7引入的&quot;??&quot;和&quot;?:&quot;的区别讲解
2019/04/08 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
js计算精度问题小结
2013/04/22 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
函数window.open实现关闭所有的子窗口
2015/08/03 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
物资采购管理制度
2015/08/06 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers
浅谈MySQL中的六种日志
2022/03/23 MySQL
tomcat下部署jenkins的方法
2022/05/06 Servers