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 window.event对象详尽解析
Feb 17 Javascript
javascript 异常处理使用总结
Jun 21 Javascript
js表格分页实现代码
Sep 18 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
Feb 27 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
js实现带圆角的多级下拉菜单效果
Aug 28 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
jQuery层级选择器实例代码
Feb 06 Javascript
JavaScript 中的无穷数(Infinity)详解
Feb 13 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
Aug 06 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传输数据的代码
2007/11/13 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
Yii2单元测试用法示例
2016/11/12 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
jquery实现数字输入框
2017/02/22 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
Python实现文件按照日期命名的方法
2015/07/09 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
详解Python进程间通信之命名管道
2017/08/28 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
python中count函数简单的实例讲解
2020/02/06 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
python如何调用字典的key
2020/05/25 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
Java语言的优势
2015/01/10 面试题
自我评价范文
2013/12/22 职场文书
司法局火灾防控方案
2014/06/05 职场文书
努力学习保证书
2015/02/26 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
志愿者工作心得体会
2016/01/15 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js