基于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 相关文章推荐
JavaScript去除空格的几种方法
Oct 03 Javascript
javascript 词法作用域和闭包分析说明
Aug 12 Javascript
原生javascript实现的一个简单动画效果
Mar 30 Javascript
深入理解JS继承和原型链的问题
Dec 17 Javascript
详解vue组件基础
May 04 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
Oct 30 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
Oct 30 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
Mar 16 Javascript
如何使用CocosCreator对象池
Apr 14 Javascript
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
基于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删除数组元素示例分享
2014/02/17 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
Python版微信红包分配算法
2015/05/04 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python DataFrame 取差集实例
2019/01/30 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
少先队学雷锋活动月总结
2014/03/09 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
岗位安全生产责任书
2014/07/28 职场文书
教师节班会主持词
2015/07/06 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python
python中urllib包的网络请求教程
2022/04/19 Python