多个js毫秒倒计时同时进行效果


Posted in Javascript onJanuary 05, 2016

本文实例讲解js毫秒倒计时同时进行效果的代码,分享给大家供大家参考,具体内容如下

实现功能:调用一个函数,传入html元素的id,和一个截止时间(unix时间戳),在该html元素中打印出到当前到截止时间为止的倒计时,精确到毫秒;

效果图如下:

多个js毫秒倒计时同时进行效果

<!DOCTYPE html>
<html>

 <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <title></title>
  <style>
   div{
    width: 100%;
    height: 50px;
    margin-bottom: 5px;
    background: yellowgreen;
   }
  </style>
 </head>

 <body>
  
  <h2>毫秒的倒计时</h2>
  <div id="timer1"></div>
  <div id="timer2"></div>
  <div id="timer3"></div>
  <div id="timer4"></div>
  <script>
   var addTimer = function(){
    var list = [],
     interval;
     
    return function(id,timeStamp){
     if(!interval){
      interval = setInterval(go,1);
     }
     list.push({ele:document.getElementById(id),time:timeStamp});
    }
    
    function go() { 
     for (var i = 0; i < list.length; i++) { 
      list[i].ele.innerHTML = changeTimeStamp(list[i].time); 
      if (!list[i].time) 
       list.splice(i--, 1); 
     } 
    }

    //传入unix时间戳,得到倒计时
    function changeTimeStamp(timeStamp){
     var distancetime = new Date(timeStamp*1000).getTime() - new Date().getTime();
     if(distancetime > 0){ 






//如果大于0.说明尚未到达截止时间    
      var ms = Math.floor(distancetime%1000);
      var sec = Math.floor(distancetime/1000%60);
      var min = Math.floor(distancetime/1000/60%60);
      var hour =Math.floor(distancetime/1000/60/60%24);
      
      if(ms<100){
       ms = "0"+ ms;
      }
      if(sec<10){
       sec = "0"+ sec;
      }
      if(min<10){
       min = "0"+ min;
      }
      if(hour<10){
       hour = "0"+ hour;
      }
      
      return hour + ":" +min + ":" +sec + ":" +ms;
     }else{







//若否,就是已经到截止时间了
      return "已截止!"
     } 
    }    
   }();
   
   addTimer("timer1",1451923200);//1月5日00点,unix时间戳自己去百度一下,就有的
   addTimer("timer2",1451926800);//1月5日01点
   addTimer("timer3",1451930400);//1月5日02点
   addTimer("timer4",1452020400);//1月6日03点

  </script>
  
 </body>

</html>

如何使用这个函数?

addTimer("#id",时间戳int); 

PS:

其实这个函数有一个小小的问题:就是并不会显示截止天数;因为老板表示我们的倒计时时间最多也就几个小时,所以在判断倒计时的小时和天数上,我也就懒得写那么多了。所以如果传入的时间戳距今超过了1天。那么你会看到如此结果:02:11:32:874~~只剩2个小时了!明显不对是不是?

so,有2个方案这里:

方法1:把var hour =Math.floor(distancetime/1000/60/60%24);改成var hour =Math.floor(distancetime/1000/60/60);

如果截止时间距今超出一天了,小时位置会显示大于24的数字;比如:36:45:22:888

方法2:你自己再写一个计算天数的变量;

更多关于倒计时的文章请查看专题:《倒计时功能》

更多JavaScript时钟特效点击查看:JavaScript时钟特效专题

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JS简单的轮播的图片滚动实例
Jun 17 Javascript
JS实现向表格中动态添加行的方法
Mar 30 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
去除字符串左右两边的空格(实现代码)
May 12 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
javascript学习之json入门
Dec 22 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
AngularJS发送异步Get/Post请求方法
Aug 13 Javascript
对VUE中的对象添加属性
Sep 18 Javascript
vue组件之间数据传递的方法实例分析
Feb 12 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
Jan 04 #Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 #Javascript
jQuery EasyUI之DataGrid使用实例详解
Jan 04 #Javascript
JavaScript原型及原型链终极详解
Jan 04 #Javascript
jQuery实现简单的点赞效果
May 29 #Javascript
jQuery+Ajax实现无刷新操作
Jan 04 #Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
Jan 04 #Javascript
You might like
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
php递归创建目录的方法
2015/02/02 PHP
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
Python 查找字符在字符串中的位置实例
2018/05/02 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
django从后台返回html代码的实例
2020/03/11 Python
python读取mysql数据绘制条形图
2020/03/25 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
关于奉献的演讲稿
2014/05/21 职场文书
安全保卫工作竞聘材料
2014/08/25 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
人事主管岗位职责
2015/02/04 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
2015年团支书工作总结
2015/04/03 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
用Python实现Newton插值法
2021/04/17 Python
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript