基于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实时监听文本框状态的方法
Apr 26 Javascript
js检查页面上有无重复id的实现代码
Jul 17 Javascript
js取值中form.all和不加all的区别介绍
Jan 20 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
浅析BootStrap Treeview的简单使用
Oct 12 Javascript
jq checkbox 的全选并ajax传参的实例
Apr 01 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 Javascript
JS中间件设计模式的深入探讨与实例分析
Apr 11 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 Javascript
JavaScript基于SVG的图片切换效果实例代码
Dec 15 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
短波问题解答
2021/02/28 无线电
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
用C语言实现文件读写操作
2013/10/27 面试题
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
户外活动策划方案
2014/03/12 职场文书
客户答谢会活动方案
2014/08/31 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
小学生运动会广播
2015/08/19 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
JavaScript流程控制(分支)
2021/12/06 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers