jQuery实现的美观的倒计时实例代码

<!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 {
  250px;
  height:30px;
  overflow:hidden;
  color:#000000;
  background:url(mytest/jQuery/colockbg.png) no-repeat;
  margin:0px auto;
}
.colockbox span {
  float:left;
  display:block;
  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的执行。

后来都会美好的!
原文地址:https://www.cnblogs.com/momox/p/5090733.html