基于jQuery实现美观且实用的倒计时实例代码


Posted in Javascript onDecember 30, 2015

倒计时效果有着广泛的应用,比如奥运会倒计时、高考倒计时和放假倒计时等,本章节分享一个比较美观且实用的倒计时效果。

代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>倒计时效果代码</title>
<style type="text/css">
* {
 padding:0;
 margin:0;
}
.colockbox {
 width:250px;
 height:30px;
 overflow:hidden;
 color:#000000;
 background:url(mytest/jQuery/colockbg.png) no-repeat;
 margin:0px auto;
}
.colockbox span {
 float:left;
 display:block;
 width:40px;
 height:29px;
 line-height:29px;
 font-size:20px;
 font-weight:bold;
 text-align:center;
 color:#ffffff;
 margin-right:22px;
}
</style>
<script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript"> 
$(function(){ 
 countDown("2016/2/3 6:30:59","#colockbox1"); 
}); 
function countDown(time,id){ 
 var day_elem=$(id).find('.day'); 
 var hour_elem=$(id).find('.hour'); 
 var minute_elem=$(id).find('.minute'); 
 var second_elem=$(id).find('.second'); 
 var end_time = new Date(time).getTime();
 var sys_second = (end_time-new Date().getTime())/1000; 
 var timer = setInterval(function(){ 
  if(sys_second>1) { 
   sys_second-=1; 
   var day=Math.floor((sys_second/3600)/24); 
   var hour=Math.floor((sys_second/3600)%24); 
   var minute=Math.floor((sys_second/60)%60); 
   var second=Math.floor(sys_second%60); 
   $(day_elem).text(day);
   $(hour_elem).text(hour<10?"0"+hour:hour);
   $(minute_elem).text(minute<10?"0"+minute:minute); 
   $(second_elem).text(second<10?"0"+second:second);
  } 
  else { 
   clearInterval(timer); 
  } 
 }, 1000); 
} 
</script>
</head>
<body>
<div class="colockbox" id="colockbox1"> 
 <span class="day">00</span> 
 <span class="hour">00</span> 
 <span class="minute">00</span> 
 <span class="second">00</span> 
</div>
</body>
</html>

以上代码实现了我们的要求,可以实现秒到天的倒计时效果,下面就介绍一下实现过程。

一.实现原理:

原理比较简单,就是取得到期时间的时间戳减去当前时间的时间戳,就是两者之间相差的秒数,然后通过这个秒数除以3600就是相差的小时数,然后再除以24,然后使用Math.floor()函数进行下舍入,就是相差的天数,下面获取小时、分钟和秒都是此原理。使用定时器函数每隔一秒调用一次相应的函数就实现了倒计时的效果。

二.代码注释:

1.$(function(){}),当文档结构完全加载完毕再去执行函数中的代码。
2.countDown("2016/2/3 6:30:59","#colockbox1"),调用函数,第一个参数是到期的时间,第二个是div的id属性值。
3.function countDown(time,id){},声明此函数。
4.var day_elem=$(id).find('.day'),获取div下class属性值为day的对象。
5.var hour_elem=$(id).find('.hour'),获取div下class属性值为hour的对象。
6.var minute_elem=$(id).find('.minute'),获取div下class属性值为minute的对象。
7.var second_elem=$(id).find('.second'),获取div下class属性值为second的对象。
8.var end_time=new Date(time).getTime(),获取到期事件的时间戳。
9.var sys_second=(end_time-new Date().getTime())/1000,获取到期时间和当前时间相差的秒数。
10.var timer=setInterval(function(){},1000),每隔一秒执行一次函数。
11.if(sys_second>1) ,如果相差的秒大于1。
12.sys_second-=1,秒减一。
13.var day=Math.floor((sys_second/3600)/24),获取相差的天数。
14.var hour=Math.floor((sys_second/3600)%24),获取相差的小时数,注意后面是取模运算。
15.var minute=Math.floor((sys_second/60)%60),获取相差的分钟数。
16.var second=Math.floor(sys_second%60),获取相差的秒数。
17.$(day_elem).text(day),将天写入span元素。
18.$(hour_elem).text(hour<10?"0"+hour:hour),将小时写入span,如果小时数小于10,前面加0,后面同样的道理。
19.clearInterval(timer),如果相差的秒数到0,就停止计时器函数setInterval的执行。

以上内容是小编给大家分享的基于jQuery实现美观且实用的倒计时实例代码,希望本文分享能够给大家带来帮助。

Javascript 相关文章推荐
js中文逗号转英文实现
Feb 11 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
Dec 16 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
Dec 25 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
Jul 28 Javascript
JS及PHP代码编写八大排序算法
Jul 12 Javascript
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
在小程序中推送模板消息的实现方法
Jul 22 Javascript
基于javascript实现贪吃蛇小游戏
Nov 25 Javascript
Vue学习之axios的使用方法实例分析
Jan 06 Javascript
Node.js fs模块原理及常见用途
Oct 22 Javascript
Vant 中的Toast设置全局的延迟时间操作
Nov 04 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 #Javascript
Highcharts使用简例及异步动态读取数据
Dec 30 #Javascript
JavaScript阻止回车提交表单的方法
Dec 30 #Javascript
基于JavaScript代码实现微信扫一扫下载APP
Dec 30 #Javascript
分享两款带遮罩的jQuery弹出框
Dec 30 #Javascript
JavaScript小技巧整理
Dec 30 #Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 #Javascript
You might like
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
javascript FormatNumber函数实现方法
2008/12/30 Javascript
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
编写Python CGI脚本的教程
2015/06/29 Python
python开发之str.format()用法实例分析
2016/02/22 Python
Python快速排序算法实例分析
2017/11/29 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
简述 Python 的类和对象
2020/08/21 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
应届生高等护理求职信
2013/10/12 职场文书
银行求职自荐书
2014/06/25 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android