基于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 相关文章推荐
JQuery的ajax基础上的超强GridView展示
Sep 18 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
Mar 05 Javascript
AngularJS实现全选反选功能
Dec 08 Javascript
Bootstrap每天必学之警告框插件
Apr 26 Javascript
模仿password输入框的实现代码
Jun 07 Javascript
vue-resouce设置请求头的三种方法
Sep 12 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
swiper动态改变滑动内容的实现方法
Jan 17 Javascript
Vue项目打包部署到iis服务器的配置方法
Oct 14 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 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 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
JSON 编辑器实现代码
2009/12/06 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
手机端转盘抽奖代码分享
2015/09/10 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python编写Windows Service服务程序
2018/01/04 Python
Python装饰器原理与用法分析
2018/04/30 Python
numpy中矩阵合并的实例
2018/06/15 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
详解Django配置优化方法
2019/11/18 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
运动会稿件300字
2014/02/14 职场文书
大家访活动实施方案
2014/03/10 职场文书
如何写早恋检讨书
2014/09/10 职场文书
秋季运动会开幕词
2015/01/28 职场文书
入伍通知书
2015/04/23 职场文书
小学记事作文之200字
2019/08/06 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang