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 插件开发方法小结
Oct 23 Javascript
基于jQuery的消息提示插件之旅 DivAlert(三)
Apr 01 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
May 23 Javascript
css如何让浮动元素水平居中
Aug 07 Javascript
Javascript中的迭代、归并方法详解
Jun 14 Javascript
angular bootstrap timepicker TypeError提示怎么办
Jun 13 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
vue v-model动态生成详解
Jun 30 Javascript
微信小程序中显示倒计时代码实例
May 09 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 Javascript
解决layui动态加载复选框无法选中的问题
Sep 20 Javascript
jQuery实现轮播图源码
Oct 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使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
JavaScript基本对象
2007/01/11 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
pip命令无法使用的解决方法
2018/06/12 Python
Python正则表达式和元字符详解
2018/11/29 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
Java基础面试题
2012/11/02 面试题
捐赠仪式主持词
2014/03/19 职场文书
环保倡议书50字
2014/05/15 职场文书
给校长的建议书300字
2014/05/16 职场文书
求职信名称怎么写
2014/05/26 职场文书
基层党员公开承诺书
2014/05/29 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
县人大领导班子四风对照检查材料思想汇报
2014/10/09 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
Golang二维数组的使用方式
2021/05/28 Golang