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 相关文章推荐
js TextArea的选中区域处理
Dec 28 Javascript
js中单引号与双引号冲突问题解决方法
Oct 04 Javascript
js中indexof的用法详细解析
Dec 24 Javascript
JavaScript中自定义事件用法分析
Dec 23 Javascript
Jquery日历插件制作简单日历
Oct 28 Javascript
论Bootstrap3和Foundation5网格系统的异同
May 16 Javascript
js判断文件格式及大小的简单实例(必看)
Oct 11 Javascript
Vuex和前端缓存的整合策略详解
May 09 Javascript
详解开发react应用最好用的脚手架 create-react-app
Apr 24 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
Aug 24 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实现基于文本的摩斯电码生成器
2016/01/11 PHP
PHP new static 和 new self详解
2017/02/19 PHP
详解php实现页面静态化原理
2017/06/21 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
Three.js快速入门教程
2016/09/09 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
什么是Smart Navigation?
2016/07/03 面试题
JAVA程序员面试题
2012/10/03 面试题
应用艺术毕业生的自我评价
2013/12/04 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
降消项目实施方案
2014/03/30 职场文书
社团活动总结
2014/04/28 职场文书
品质标语大全
2014/06/21 职场文书
素质教育标语
2014/06/27 职场文书
大学计划书范文800字
2014/08/14 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
暂停营业通知
2015/04/25 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
浅谈Python中的正则表达式
2021/06/28 Python
Nebula Graph解决风控业务实践
2022/03/31 MySQL