多个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实现动态菜单添加的实例代码
Jul 05 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
JavaScript数组常用方法
Mar 02 Javascript
实例详解angularjs和ajax的结合使用
Oct 22 Javascript
javascript如何写热点图
Dec 08 Javascript
JavaScript+html5 canvas绘制的小人效果
Jan 27 Javascript
20分钟打造属于你的Bootstrap站点
Jul 27 Javascript
VUE开发一个图片轮播的组件示例代码
Mar 06 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
jquery的$().each和$.each的区别
Jan 18 jQuery
vue集成kindeditor富文本的实现示例代码
Jun 07 Javascript
vue获取form表单的值示例
Oct 29 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(1) php开发环境配置
2010/02/15 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
关于Python解包知识点总结
2020/05/05 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
世界上最好的帽子:Tilley
2016/11/27 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
幼儿园春游活动方案
2014/01/19 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
MySQL三种方式实现递归查询
2022/04/18 MySQL