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获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
js脚本实现数据去重
Nov 27 Javascript
javascript如何创建对象
Aug 29 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
Apr 18 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
深入探究node之Transform
Jul 20 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
Nov 23 Javascript
Vue传参一箩筐(页面、组件)
Apr 04 Javascript
使用layui的router来进行传参的实现方法
Sep 06 Javascript
查找Vue中下标的操作(some和findindex)
Aug 12 Javascript
jquery实现图片放大镜效果
Dec 23 jQuery
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/03/09 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
PHP中echo和print的区别
2014/08/28 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
微信小程序自定义波浪组件使用方法详解
2019/09/21 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
实现python版本的按任意键继续/退出
2016/09/26 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
python中的for循环
2018/09/28 Python
Python多图片合并PDF的方法
2019/01/03 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
vscode调试django项目的方法
2020/08/06 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
财务工作犯错检讨书
2014/10/07 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers