多个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 相关文章推荐
一句话JavaScript表单验证代码
Aug 02 Javascript
jquery ajax 登录验证实现代码
Sep 23 Javascript
js中有关IE版本检测
Jan 04 Javascript
js日期、星座的级联显示代码
Jan 23 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
Jun 19 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
Jquery让form表单异步提交代码实现
Nov 14 jQuery
javascript自定义加载loading效果
Sep 15 Javascript
vue-router定义元信息meta操作
Dec 07 Vue.js
JavaScript中reduce()的用法
May 11 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
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
vue父子组件通信的高级用法示例
2019/08/29 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
让python json encode datetime类型
2010/12/28 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
python随机数分布random测试
2018/08/27 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
大学生的网上创业计划书
2013/12/31 职场文书
烹饪自我鉴定
2014/03/01 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
党员公开承诺事项
2014/03/25 职场文书
企业承诺书怎么写
2014/05/24 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android