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 相关文章推荐
基于jquery的复制网页内容到WORD的实现代码
Feb 16 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
Jul 25 Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 Javascript
JSON相关知识汇总
Jul 03 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
js倒计时简单实现方法
Dec 17 Javascript
jQuery限制图片大小的方法
May 25 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
javascript中的面向对象
Mar 30 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
关于单文件组件.vue的使用
Sep 20 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
PHP.MVC的模板标签系统(三)
2006/09/05 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
Seajs源码详解分析
2019/04/02 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python实现证件照换底功能
2019/08/20 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
2013年大学生的自我鉴定
2013/10/24 职场文书
优秀家长自荐材料
2014/08/26 职场文书
法人代表证明书格式
2014/10/01 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
地震捐款简报
2015/07/21 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
Mysql忘记密码解决方法
2022/02/12 MySQL
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS