基于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 代码的方法小结
Jul 16 Javascript
javascript window对象属性整理
Oct 24 Javascript
js动态添加事件并可传参数示例代码
Oct 21 Javascript
原生js的弹出层且其内的窗口居中
May 14 Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 Javascript
jQuery stop()用法实例详解
Jul 28 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
Aug 02 Javascript
jquery.picsign图片标注组件实例详解
Feb 02 jQuery
关于vue面试题汇总
Mar 20 Javascript
vue data引入本地图片的两种方式小结
Nov 13 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
angular异步验证器防抖实例详解
Mar 31 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 数组基本操作小结(推荐)
2016/06/13 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
vuex实现简易计数器
2016/10/27 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python转换时间的图文方法
2019/07/01 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
奶茶专卖店创业计划书
2014/01/18 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
《搭石》教学反思
2014/04/07 职场文书
文体活动总结范文
2014/05/05 职场文书
食品工程专业求职信
2014/06/15 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
实习协议书范本
2014/09/25 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
信用卡收入证明范本
2015/06/12 职场文书
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers
Spring中bean集合注入的方法详解
2022/07/07 Java/Android