js实现精确到秒的倒计时效果


Posted in Javascript onMay 29, 2016

本文实例为大家分享了两种倒计时效果,供大家参考,具体内容如下

效果图:

js实现精确到秒的倒计时效果

1.倒计时效果

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8"/>
 <title>倒计时</title>
 <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8"/>
 <style type="text/css">
 *{ margin:0; padding:0;}
 .dtime{ margin:10px;}
 .dtime span{ color:#C30;}
 </style> 
 
 </head>
 <body>
  <div class="dtime" id="a1"></div>
 <div class="dtime" id="a2"></div>
 <div class="dtime" id="a3"></div>
 <div class="dtime" id="a4"></div>
 <div class="dtime" id="a5"></div>
 </body> 
 <script>
 function tbdTimeCountdown(args){//倒计时函数
 var ele=document.getElementById(args.id);
 var alltime=args.alltime;
 var arr=[];
 
 var t=Math.floor(alltime/(24*60*60));
 var yt=alltime%(24*60*60);
 
 var s=Math.floor(yt/(60*60));
 var ys=yt%(60*60);
 
 var f=Math.floor(ys/(60));
 var yf=ys%(60);
 
 var m=yf;
 
 arr[0]=[t,"天"];
 arr[1]=[s,"小时"];
 arr[2]=[f,"分"];
 arr[3]=[m,"秒结束"];
 
 var s=ce(arr,0);
 
 ele.innerHTML=s;
 
 var dong;
 
 dong=setInterval(function(){
  alltime-=1;
  if(alltime<=0){
  clearInterval(dong);
  ele.innerHTML="<span>0</span>秒";
  args.end();
  }else{
  t=Math.floor(alltime/(24*60*60));
  yt=alltime%(24*60*60);
 
  s=Math.floor(yt/(60*60));
  ys=yt%(60*60);
 
  f=Math.floor(ys/(60));
  yf=ys%(60);
 
  m=yf;
 
  arr[0]=[t,"天"];
  arr[1]=[s,"小时"];
  arr[2]=[f,"分"];
  arr[3]=[m,"秒结束"];
 
  var s=ce(arr,0);
 
  ele.innerHTML=s;
  };   
 },1000);
 
 function ce(arr,sta){
  var i=sta;
  if(i<arr.length){
  if(arr[i][0]!=0){
   var s="";
   for(var j=i;j<arr.length;j++){
   s+="<span>"+arr[j][0]+"</span>"+arr[j][1];
   };
   return s;
  }else{
   return ce(arr,i+1);
  };
  };
 };
 };//倒计时end
 //效果1
 //86402 3602 62
 tbdTimeCountdown({id:"a1",//含有倒计时容器
 alltime:3,//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
  //alert("倒计时结束才会执行!");
 },
 
 });
 //效果2
 tbdTimeCountdown({id:"a2",//含有倒计时容器
 alltime:62,//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 //效果3
 tbdTimeCountdown({id:"a3",//含有倒计时容器
 alltime:3602,//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 //效果4
 tbdTimeCountdown({id:"a4",//含有倒计时容器
 alltime:86402,//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 //效果4
 tbdTimeCountdown({id:"a5",//含有倒计时容器
 alltime:154789,//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 </script>
</html>

2.倒计时2.html

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8"/>
 <title>倒计时</title>
 <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8"/>
 <style type="text/css">
 *{ margin:0; padding:0;}
 .dtime{ margin:10px;}
 .dtime span{ color:#C30;}
 </style> 
 
 </head>
 <body>
 <div class="dtime" id="a1" alltime="3"></div>
 <div class="dtime" id="a2" alltime="62"></div>
 <div class="dtime" id="a3" alltime="3605"></div>
 <div class="dtime" id="a4" alltime="48605"></div>
 <div class="dtime" id="a5" alltime="123456"></div>
 </body> 
 <script>
 function tbdTimeCountdown(args){//倒计时函数
 var ele=document.getElementById(args.id);
 var alltime=Number(ele.getAttribute(args.alltime));
 var arr=[];
 
 var t=Math.floor(alltime/(24*60*60));
 var yt=alltime%(24*60*60);
 
 var s=Math.floor(yt/(60*60));
 var ys=yt%(60*60);
 
 var f=Math.floor(ys/(60));
 var yf=ys%(60);
 
 var m=yf;
 
 arr[0]=[t,"天"];
 arr[1]=[s,"小时"];
 arr[2]=[f,"分"];
 arr[3]=[m,"秒结束"];
 
 var s=ce(arr,0);
 
 ele.innerHTML=s;
 
 var dong;
 
 dong=setInterval(function(){
  alltime-=1;
  ele.setAttribute(args.alltime,alltime);
  if(alltime<=0){
  clearInterval(dong);
  ele.innerHTML="<span>0</span>秒";
  args.end();
  }else{
  t=Math.floor(alltime/(24*60*60));
  yt=alltime%(24*60*60);
 
  s=Math.floor(yt/(60*60));
  ys=yt%(60*60);
 
  f=Math.floor(ys/(60));
  yf=ys%(60);
 
  m=yf;
 
  arr[0]=[t,"天"];
  arr[1]=[s,"小时"];
  arr[2]=[f,"分"];
  arr[3]=[m,"秒结束"];
 
  var s=ce(arr,0);
 
  ele.innerHTML=s;
  };   
 },1000);
 
 function ce(arr,sta){
  var i=sta;
  if(i<arr.length){
  if(arr[i][0]!=0){
   var s="";
   for(var j=i;j<arr.length;j++){
   s+="<span>"+arr[j][0]+"</span>"+arr[j][1];
   };
   return s;
  }else{
   return ce(arr,i+1);
  };
  };
 };
 };//倒计时end
 //效果1
 //86402 3602 62
 tbdTimeCountdown({id:"a1",//含有倒计时容器
 alltime:"alltime",//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
  alert("倒计时结束才会执行!");
 },
 
 });
 //效果2
 tbdTimeCountdown({id:"a2",//含有倒计时容器
 alltime:"alltime",//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 //效果3
 tbdTimeCountdown({id:"a3",//含有倒计时容器
 alltime:"alltime",//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 //效果4
 tbdTimeCountdown({id:"a4",//含有倒计时容器
 alltime:"alltime",//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 //效果4
 tbdTimeCountdown({id:"a5",//含有倒计时容器
 alltime:"alltime",//倒计时总秒数
 end:function(){//倒计时结束,时间为0是调用的函数
 },
 
 });
 </script>
</html>

大家可以参考专题 《js倒计时功能汇总》 进行深入学习。

以上就是本文的全部内容,希望对大家学习JavaScript程序设计有所帮助。

Javascript 相关文章推荐
在网页中屏蔽快捷键
Sep 06 Javascript
javascript iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
May 05 Javascript
JS for...in 遍历语句用法实例分析
Aug 24 Javascript
JS动态计算移动端rem的解决方案
Oct 14 Javascript
Angularjs cookie 操作实例详解
Sep 27 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
Apr 19 jQuery
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
May 14 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
Apr 15 Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 04 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
解读Bootstrap v4 sass设计
May 29 #Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 #Javascript
深入理解js数组的sort排序
May 28 #Javascript
深入理解js函数的作用域与this指向
May 28 #Javascript
js和C# 时间日期格式转换的简单实例
May 28 #Javascript
JS函数arguments数组获得实际传参数个数的实现方法
May 28 #Javascript
深入理解JS函数的参数(arguments)的使用
May 28 #Javascript
You might like
基于mysql的论坛(2)
2006/10/09 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python中每次处理一个字符的5种方法
2015/05/21 Python
速记Python布尔值
2017/11/09 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
小孩百日宴答谢词
2014/01/15 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
文明城市创建标语
2014/06/16 职场文书
2014年班组工作总结
2014/11/20 职场文书
导游词之井冈山
2019/11/20 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android