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 相关文章推荐
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
Extjs中使用extend(js继承) 的代码
Mar 15 Javascript
简单总结JavaScript中的String字符串类型
May 26 Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 Javascript
微信小程序商城项目之淘宝分类入口(2)
Apr 17 Javascript
利用JS实现简单的瀑布流加载图片效果
Apr 22 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
php 修改密码实现代码
May 24 Javascript
jQuery基于Ajax实现读取XML数据功能示例
May 31 jQuery
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
25道Java面试题集合
2013/05/21 面试题
金融专业个人求职信
2013/09/22 职场文书
工商管理本科毕业生求职信范文
2013/10/05 职场文书
公司年底活动方案
2014/08/17 职场文书
听证会主持词
2015/07/03 职场文书