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 相关文章推荐
动态加载图片路径 保持JavaScript控件的相对独立性
Sep 06 Javascript
用jquery与css打造个性化的单选框和复选框
Oct 20 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
vue项目tween方法实现返回顶部的示例代码
Mar 02 Javascript
玩转Koa之核心原理分析
Dec 29 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
Jul 27 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 Javascript
关于JavaScript中异步/等待的用法与理解
Nov 18 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
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
2016/06/08 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
vuejs如何配置less
2017/04/25 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
甜品店创业计划书
2014/09/21 职场文书
付款委托书范本
2014/10/05 职场文书
三好学生评语大全
2014/12/29 职场文书
员工离职证明范本
2015/06/12 职场文书
金榜题名主持词
2015/07/02 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书