多个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中parentNode,childNodes,children的应用详解
Dec 17 Javascript
基于JavaScript代码实现自动生成表格
Jun 15 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 Javascript
解析jQueryEasyUI的使用
Nov 22 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
Jun 17 Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
Vue.js构建你的第一个包并在NPM上发布的方法步骤
May 01 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
Aug 16 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
Threejs实现滴滴官网首页地球动画功能
Jul 13 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
Jul 22 Javascript
Vue和React有哪些区别
Sep 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
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
js星星评分效果
2014/07/24 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
如何将json数据转换为python数据
2020/09/04 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
药学专业个人的自我评价
2013/12/31 职场文书
物流业务员岗位职责
2014/02/08 职场文书
环保志愿者活动总结
2014/06/27 职场文书
python中print格式化输出的问题
2021/04/16 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python