多个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 相关文章推荐
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
JavaScript设计模式之工厂方法模式介绍
Dec 28 Javascript
jQuery中wrapAll()方法用法实例
Jan 16 Javascript
详解Vue.js动态绑定class
Dec 20 Javascript
利用JQuery实现datatables插件的增加和删除行功能
Jan 06 Javascript
JavaScript中日常收集常见的10种错误(推荐)
Jan 08 Javascript
浅谈原生JS实现jQuery的animate()动画示例
Mar 08 Javascript
React Native验证码倒计时工具类分享
Oct 24 Javascript
浅谈Vue.js组件(二)
Apr 09 Javascript
vue实现表格过滤功能
Sep 27 Javascript
关于vue表单提交防双/多击的例子
Oct 31 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跨站攻击实例分析
2014/10/28 PHP
php基本函数汇总
2015/07/09 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
php时间戳转换代码详解
2019/08/04 PHP
28个JS验证函数收集
2010/03/02 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
JQuery中基础过滤选择器用法实例分析
2015/05/18 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
文明家庭先进事迹材
2014/01/27 职场文书
运动会入场式解说词
2014/02/18 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
企业贷款委托书格式
2014/09/12 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
公务员考察材料范文
2014/12/23 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers