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 autocomplete 使用手册
Apr 01 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
Oct 22 Javascript
JavaScript学习笔记之内置对象
Jan 22 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
如何使用jquery修改css中带有!important的样式属性
Apr 28 Javascript
基于JS实现省市联动效果代码分享
Jun 06 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
Apr 18 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 Javascript
js禁止表单重复提交
Aug 29 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 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
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python实现简单多线程任务队列
2016/02/27 Python
python集合是否可变总结
2019/06/20 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
python如何删除文件、目录
2020/06/23 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
城市规划毕业生求职信
2013/10/10 职场文书
后勤人员自我鉴定
2013/10/20 职场文书
思想品德自我评价
2014/02/04 职场文书
三项教育活动实施方案
2014/03/30 职场文书
主题团日活动总结
2014/06/25 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS