基于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 存在陷阱 删除某一区域所有节点
May 10 Javascript
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 Javascript
jquery中键盘事件小结
Feb 24 Javascript
jquery插件Jplayer使用方法简析
Apr 22 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
Dec 28 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
JavaScript实现随机数生成器(去重)
Oct 13 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
详解vue中axios的封装
Jul 18 Javascript
详解JavaScript 异步编程
Jul 13 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读取javascript设置的cookies的代码
2010/04/12 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
webpack 2的react开发配置实例代码
2017/07/28 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python切换pip安装源的方法详解
2016/11/18 Python
Python Web版语音合成实例详解
2019/07/16 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Django配置文件代码说明
2019/12/04 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
大学生就业推荐信范文
2013/11/29 职场文书
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
小学一年级评语大全
2014/04/22 职场文书
医院搬迁方案
2014/06/14 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
TS 类型收窄教程示例详解
2022/09/23 Javascript