基于jQuery實(shí)現(xiàn)美觀且實(shí)用的倒計(jì)時(shí)實(shí)例代碼
倒計(jì)時(shí)效果有著廣泛的應(yīng)用,比如奧運(yùn)會(huì)倒計(jì)時(shí)、高考倒計(jì)時(shí)和放假倒計(jì)時(shí)等,本章節(jié)分享一個(gè)比較美觀且實(shí)用的倒計(jì)時(shí)效果。
代碼實(shí)例如下:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>倒計(jì)時(shí)效果代碼</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)秒到天的倒計(jì)時(shí)效果,下面就介紹一下實(shí)現(xiàn)過程。
一.實(shí)現(xiàn)原理:
原理比較簡(jiǎn)單,就是取得到期時(shí)間的時(shí)間戳減去當(dāng)前時(shí)間的時(shí)間戳,就是兩者之間相差的秒數(shù),然后通過這個(gè)秒數(shù)除以3600就是相差的小時(shí)數(shù),然后再除以24,然后使用Math.floor()函數(shù)進(jìn)行下舍入,就是相差的天數(shù),下面獲取小時(shí)、分鐘和秒都是此原理。使用定時(shí)器函數(shù)每隔一秒調(diào)用一次相應(yīng)的函數(shù)就實(shí)現(xiàn)了倒計(jì)時(shí)的效果。
二.代碼注釋:
1.$(function(){}),當(dāng)文檔結(jié)構(gòu)完全加載完畢再去執(zhí)行函數(shù)中的代碼。
2.countDown("2016/2/3 6:30:59","#colockbox1"),調(diào)用函數(shù),第一個(gè)參數(shù)是到期的時(shí)間,第二個(gè)是div的id屬性值。
3.function countDown(time,id){},聲明此函數(shù)。
4.var day_elem=$(id).find('.day'),獲取div下class屬性值為day的對(duì)象。
5.var hour_elem=$(id).find('.hour'),獲取div下class屬性值為hour的對(duì)象。
6.var minute_elem=$(id).find('.minute'),獲取div下class屬性值為minute的對(duì)象。
7.var second_elem=$(id).find('.second'),獲取div下class屬性值為second的對(duì)象。
8.var end_time=new Date(time).getTime(),獲取到期事件的時(shí)間戳。
9.var sys_second=(end_time-new Date().getTime())/1000,獲取到期時(shí)間和當(dāng)前時(shí)間相差的秒數(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í)數(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),將小時(shí)寫入span,如果小時(shí)數(shù)小于10,前面加0,后面同樣的道理。
19.clearInterval(timer),如果相差的秒數(shù)到0,就停止計(jì)時(shí)器函數(shù)setInterval的執(zhí)行。
以上內(nèi)容是小編給大家分享的基于jQuery實(shí)現(xiàn)美觀且實(shí)用的倒計(jì)時(shí)實(shí)例代碼,希望本文分享能夠給大家?guī)韼椭?/p>
- 50個(gè)比較實(shí)用jQuery代碼段
- JQuery select標(biāo)簽操作代碼段
- 分享javascript、jquery實(shí)用代碼段
- 利用Jquery實(shí)現(xiàn)幾款漂亮實(shí)用的時(shí)間軸(附示例代碼)
- jQuery+ajax實(shí)現(xiàn)實(shí)用的點(diǎn)贊插件代碼
- 分享12個(gè)實(shí)用的jQuery代碼片段
- 8個(gè)超實(shí)用的jQuery功能代碼分享
- 60個(gè)很實(shí)用的jQuery代碼開發(fā)技巧收集
- 一些實(shí)用的jQuery代碼片段收集
- jquery實(shí)用代碼片段集合
- 非常實(shí)用的jQuery代碼段集錦【檢測(cè)瀏覽器、滾動(dòng)、復(fù)制、淡入淡出等】
相關(guān)文章
全面解析DOM操作和jQuery實(shí)現(xiàn)選項(xiàng)移動(dòng)操作代碼分享
這篇文章主要介紹了DOM操作和jQuery實(shí)現(xiàn)選項(xiàng)移動(dòng)操作代碼分享的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06基于jQuery實(shí)現(xiàn)拖拽圖標(biāo)到回收站并刪除功能
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)拖拽圖標(biāo)到回收站并刪除功能,實(shí)現(xiàn)非常簡(jiǎn)單,我們直接可以利用jQuery內(nèi)部封裝的拖拽接口即可簡(jiǎn)單實(shí)現(xiàn)在網(wǎng)頁上拖拽任意元素的功能,感興趣的小伙伴們可以參考一下2015-11-11從零開始學(xué)習(xí)jQuery (六) jquery中的AJAX使用
本篇文章講解如何使用jQuery方便快捷的實(shí)現(xiàn)Ajax功能.統(tǒng)一所有開發(fā)人員使用Ajax的方式.2011-02-02解析jquery easyui tree異步加載子節(jié)點(diǎn)問題
本篇文章主要介紹解析jquery easyui tree異步加載子節(jié)點(diǎn)問題,easyui中的樹可以從標(biāo)記中建立,也可以通過指定一個(gè)URL屬性讀取數(shù)據(jù)建立,有興趣的可以了解一下。2017-03-03基于jQuery實(shí)現(xiàn)左右div自適應(yīng)高度完全相同的代碼
最近做前端設(shè)計(jì)時(shí)需要使左右兩個(gè)DIV高度自適應(yīng)。這其中的jquery代碼中的獲得高度用的clientHeight,介紹一下幾種不同的獲得方式以及他們的差別2012-08-08