基于jQuery實(shí)現(xiàn)美觀且實(shí)用的倒計時實(shí)例代碼
倒計時效果有著廣泛的應(yīng)用,比如奧運(yùn)會倒計時、高考倒計時和放假倒計時等,本章節(jié)分享一個比較美觀且實(shí)用的倒計時效果。
代碼實(shí)例如下:
<!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>
以上代碼實(shí)現(xiàn)了我們的要求,可以實(shí)現(xiàn)秒到天的倒計時效果,下面就介紹一下實(shí)現(xiàn)過程。
一.實(shí)現(xiàn)原理:
原理比較簡單,就是取得到期時間的時間戳減去當(dāng)前時間的時間戳,就是兩者之間相差的秒數(shù),然后通過這個秒數(shù)除以3600就是相差的小時數(shù),然后再除以24,然后使用Math.floor()函數(shù)進(jìn)行下舍入,就是相差的天數(shù),下面獲取小時、分鐘和秒都是此原理。使用定時器函數(shù)每隔一秒調(diào)用一次相應(yīng)的函數(shù)就實(shí)現(xiàn)了倒計時的效果。
二.代碼注釋:
1.$(function(){}),當(dāng)文檔結(jié)構(gòu)完全加載完畢再去執(zhí)行函數(shù)中的代碼。
2.countDown("2016/2/3 6:30:59","#colockbox1"),調(diào)用函數(shù),第一個參數(shù)是到期的時間,第二個是div的id屬性值。
3.function countDown(time,id){},聲明此函數(shù)。
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,獲取到期時間和當(dāng)前時間相差的秒數(shù)。
10.var timer=setInterval(function(){},1000),每隔一秒執(zhí)行一次函數(shù)。
11.if(sys_second>1) ,如果相差的秒大于1。
12.sys_second-=1,秒減一。
13.var day=Math.floor((sys_second/3600)/24),獲取相差的天數(shù)。
14.var hour=Math.floor((sys_second/3600)%24),獲取相差的小時數(shù),注意后面是取模運(yùn)算。
15.var minute=Math.floor((sys_second/60)%60),獲取相差的分鐘數(shù)。
16.var second=Math.floor(sys_second%60),獲取相差的秒數(shù)。
17.$(day_elem).text(day),將天寫入span元素。
18.$(hour_elem).text(hour<10?"0"+hour:hour),將小時寫入span,如果小時數(shù)小于10,前面加0,后面同樣的道理。
19.clearInterval(timer),如果相差的秒數(shù)到0,就停止計時器函數(shù)setInterval的執(zhí)行。
以上內(nèi)容是小編給大家分享的基于jQuery實(shí)現(xiàn)美觀且實(shí)用的倒計時實(shí)例代碼,希望本文分享能夠給大家?guī)韼椭?/p>
- 50個比較實(shí)用jQuery代碼段
- JQuery select標(biāo)簽操作代碼段
- 分享javascript、jquery實(shí)用代碼段
- 利用Jquery實(shí)現(xiàn)幾款漂亮實(shí)用的時間軸(附示例代碼)
- jQuery+ajax實(shí)現(xiàn)實(shí)用的點(diǎn)贊插件代碼
- 分享12個實(shí)用的jQuery代碼片段
- 8個超實(shí)用的jQuery功能代碼分享
- 60個很實(shí)用的jQuery代碼開發(fā)技巧收集
- 一些實(shí)用的jQuery代碼片段收集
- jquery實(shí)用代碼片段集合
- 非常實(shí)用的jQuery代碼段集錦【檢測瀏覽器、滾動、復(fù)制、淡入淡出等】
相關(guān)文章
jQuery html() in Firefox (uses .innerHTML) ignores DOM chang
Firefox doesn't update the value attribute of a DOM object based on user input, just its valueproperty - pretty quick work around exists.2010-03-03
JQuery對ASP.NET MVC數(shù)據(jù)進(jìn)行更新刪除
這篇文章主要介紹了JQuery對ASP.NET MVC數(shù)據(jù)進(jìn)行更新刪除的相關(guān)資料,需要的朋友可以參考下2016-07-07
jQuery插件echarts實(shí)現(xiàn)的單折線圖效果示例【附demo源碼下載】
這篇文章主要介紹了jQuery插件echarts實(shí)現(xiàn)的單折線圖效果,結(jié)合完整實(shí)例形式分析了echarts插件繪制簡單折線圖的操作步驟與相關(guān)實(shí)現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-03-03
jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法,涉及jQuery針對xml文件的加載、節(jié)點(diǎn)遍歷等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
jquery easyUI中ajax異步校驗(yàn)用戶名
這篇文章主要為大家詳細(xì)介紹了jquery easyUI中ajax異步校驗(yàn)用戶名,感興趣的小伙伴們可以參考一下2016-08-08

