多个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 29 Javascript
js style动态设置table高度
Oct 21 Javascript
谈谈impress.js初步理解
Sep 09 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
给angular加上动画效遇到的问题总结
Feb 17 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
Mar 11 Javascript
VUE 全局变量的几种实现方式
Aug 22 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
nuxt静态部署打包相对路径操作
Nov 06 Javascript
javascript this指向相关问题及改变方法
Nov 19 Javascript
vue自定义组件实现双向绑定
Jan 13 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
phpwind中的数据库操作类
2007/01/02 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
jQuery 阴影插件代码分享
2012/01/09 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
vue实现计算器功能
2020/02/22 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
[03:48]大碗DOTA
2019/07/25 DOTA
使用Python对Access读写操作
2017/03/30 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Django中的AutoField字段使用
2020/05/18 Python
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
师德师风承诺书
2014/05/23 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
2016春季运动会前导词
2015/11/25 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript