多个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 相关文章推荐
JQuery 学习笔记 选择器之一
Jul 23 Javascript
Google AJAX 搜索 API实现代码
Nov 17 Javascript
Jquery 插件开发笔记整理
Jan 17 Javascript
子页向父页传值示例
Nov 27 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
javascript实现在线客服效果
Jul 15 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
May 20 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
windows下vue-cli及webpack搭建安装环境
Apr 25 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
Vue SPA 首屏优化方案
Feb 26 Vue.js
在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&amp;mysql(五)
2006/10/09 PHP
解析PHP中如何将数组变量写入文件
2013/06/06 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
python获取豆瓣电影简介代码分享
2014/01/16 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
大专自我鉴定范文
2013/10/01 职场文书
便利店投资创业计划书
2014/02/08 职场文书
益达广告词
2014/03/14 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
电影圆明园观后感
2015/06/03 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
如何在Python项目中引入日志
2021/05/31 Python
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript