多个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控件
Mar 27 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
javascript里使用php代码实例
Dec 13 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
简述AngularJS的控制器的使用
Jun 16 Javascript
json格式数据的添加,删除及排序方法
Jan 21 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
Vue.js实现数据响应的方法
Aug 13 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
Vue使用鼠标在Canvas上绘制矩形
Dec 24 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
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
php处理带有中文URL的方法
2016/07/11 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python验证企业工商注册码
2015/10/25 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
村委会贫困证明范本
2014/09/17 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
毕业赠语大全
2015/06/23 职场文书
大学生暑期实践报告
2015/07/13 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS
python分分钟绘制精美地图海报
2022/02/15 Python