基于jQuery倒計(jì)時(shí)插件實(shí)現(xiàn)團(tuán)購(gòu)秒殺效果
倒計(jì)時(shí)一般是用來(lái)表示未來(lái)某一時(shí)刻距現(xiàn)在時(shí)刻還剩多少時(shí)間。倒計(jì)時(shí)在WEB上應(yīng)用非常廣泛,如考試系統(tǒng)倒計(jì)時(shí),團(tuán)購(gòu)網(wǎng)站中的優(yōu)惠活動(dòng)倒計(jì)時(shí)等等。今天,我們來(lái)使用jQuery倒計(jì)時(shí)超級(jí)實(shí)現(xiàn)團(tuán)購(gòu)秒殺效果,感興趣的朋友一起學(xué)習(xí)吧!
1.1 幫助文檔關(guān)鍵字
倒計(jì)時(shí) 秒殺 timer
1.2. 使用場(chǎng)景
這樣的倒計(jì)時(shí)在購(gòu)物網(wǎng)站中會(huì)經(jīng)常使用到,比如秒殺,限時(shí)搶購(gòu),確認(rèn)收貨倒計(jì)時(shí)。
這個(gè)功能并不難實(shí)現(xiàn),就是利用js的定時(shí)執(zhí)行,搜了一下網(wǎng)上的代碼,五花八門,都是一個(gè)方法,沒有做到封裝,方便使用,所以寫了一個(gè)插件,方便項(xiàng)目中使用。
1.4. 使用說(shuō)明
開始使用
1、 引入oao.timer.js
2、 要顯示倒計(jì)時(shí)時(shí)間的div
<div id="timer1" end-date="2016-1-1"></div> <div id="timer2" end-date="2015/10/1 12:5:2"></div>Code:
3、 初始化倒計(jì)時(shí)
$(function(){//文檔加載完初始化倒計(jì)時(shí) $("#timer1").oaoTime(); $("#timer2").oaoTime(); })
這樣就可以使用了,很簡(jiǎn)單,這樣便于項(xiàng)目開發(fā)中統(tǒng)一使用,統(tǒng)一修改。
1.5. 上代碼
//倒計(jì)時(shí)的插件 $.fn.extend({ oaoTime:function(){ this.each(function() { var dateStr = $(this).attr("end-date"); var endDate = new Date(dateStr.replace(/-/g,"/"));//取得指定時(shí)間的總毫秒數(shù) //now是在動(dòng)態(tài)頁(yè)面中取得服務(wù)器的時(shí)間,如果沒有定義使用客戶端時(shí)間 if(now==undefined){ now = new Date().getTime(); } var tms = endDate - now;//得到時(shí)間差 if(tms<0){alert("時(shí)間過期了");return;} $.oaoTime.timers.push({tms:tms,content:$(this)}); $.oaoTime.start(); }); } }); //倒計(jì)時(shí)的插件 $.oaoTime={ //倒計(jì)時(shí)容器,所有需要倒計(jì)時(shí)的時(shí)間都需要注冊(cè)到這個(gè)容器中,容器中放的是一個(gè)object,object描述了倒計(jì)時(shí)的結(jié)束時(shí)間,以及顯示時(shí)間的jquery對(duì)象(例如div) timers:[], //全局的一個(gè)倒計(jì)時(shí)狀態(tài),init表示初始化狀態(tài),start表示運(yùn)行中狀態(tài),stop表示停止?fàn)顟B(tài) status:'init', //計(jì)算時(shí)間并定時(shí)刷新時(shí)間的方法,本插件的核心代碼 takeCount:function(){ //如果定時(shí)器沒有啟動(dòng)不執(zhí)行 if(this.status != 'start')return; setTimeout("$.oaoTime.takeCount()", 1000 ); var timers = this.timers; for (var i = 0, j = timers.length; i < j; i++) { //計(jì)數(shù)減一 timers[i].tms -= 1000; //console.info(timers[i].tms); //計(jì)算時(shí)分秒 var days = Math.floor(timers[i].tms / (1000 * 60 * 60 * 24)); var hours = Math.floor(timers[i].tms / (1000 * 60 * 60)) % 24; var minutes = Math.floor(timers[i].tms / (1000 * 60)) % 60; var seconds = Math.floor(timers[i].tms / 1000) % 60; if (days < 0)days = 0; if (hours < 0)hours = 0; if (minutes < 0)minutes = 0; if (seconds < 0) seconds = 0; var newTimeText = days+"天"+hours+"小時(shí)"+minutes+"分"+seconds+"秒"; timers[i].content.text(newTimeText); //console.info(newTimeText); } }, //啟動(dòng)倒計(jì)時(shí) start:function(){ if(this.status=='init'){ this.status = 'start'; this.takeCount(); } }, //停止倒計(jì)時(shí) stop:function(){ this.status = 'stop'; } }; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>無(wú)標(biāo)題文檔</title> <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="js/oao.timer.js"></script> </head> <body> <ul> <div id="stop">停止</div> <div id="timer1" end-date="2016-1-1"></div> <div id="timer2" end-date="2015/10/1 12:5:2"></div> </ul> </body> </html> <script> $(function(){ $("#stop").click(function() { $.oaoTime.stop(); }); $("#timer1").oaoTime(); $("#timer2").oaoTime(); }) </script>
以上內(nèi)容是小編給大家介紹的基于jQuery倒計(jì)時(shí)插件實(shí)現(xiàn)團(tuán)購(gòu)秒殺效果,希望對(duì)大家有所幫助!
- Javascript實(shí)現(xiàn)商品秒殺倒計(jì)時(shí)(時(shí)間與服務(wù)器時(shí)間同步)
- PHP+JS實(shí)現(xiàn)的商品秒殺倒計(jì)時(shí)用法示例
- javascript 實(shí)現(xiàn) 秒殺,團(tuán)購(gòu) 倒計(jì)時(shí)展示的記錄 分享
- js實(shí)現(xiàn)京東秒殺倒計(jì)時(shí)功能
- javascript時(shí)間排序算法實(shí)現(xiàn)活動(dòng)秒殺倒計(jì)時(shí)效果
- C#結(jié)合JavaScript實(shí)現(xiàn)秒殺倒計(jì)時(shí)的方法
- jquery 倒計(jì)時(shí)效果實(shí)現(xiàn)秒殺思路
- jQuery倒計(jì)時(shí)代碼(超簡(jiǎn)單)
- jquery實(shí)現(xiàn)手機(jī)發(fā)送驗(yàn)證碼的倒計(jì)時(shí)代碼
- JS秒殺倒計(jì)時(shí)功能完整實(shí)例【使用jQuery3.1.1】
相關(guān)文章
jQuery不使用插件及swf實(shí)現(xiàn)無(wú)刷新文件上傳
這篇文章主要介紹了jQuery不使用插件及swf實(shí)現(xiàn)無(wú)刷新文件上傳,需要的朋友可以參考下2014-12-12jQuery結(jié)合jQuery.cookie.js插件實(shí)現(xiàn)換膚功能示例
這篇文章主要介紹了jQuery結(jié)合jQuery.cookie.js插件實(shí)現(xiàn)換膚功能,結(jié)合實(shí)例形式分析了jQuery.cookie.js插件的常用函數(shù)功能及實(shí)現(xiàn)換膚功能的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10jQuery學(xué)習(xí)筆記之Helloworld
剛學(xué)習(xí)jQuery,覺得有的東西確實(shí)有必要寫下來(lái),加深下記憶,本文純屬給自己寫的,希望大家不要見笑。2010-12-12jquery text(),val(),html()方法區(qū)別總結(jié)
jquery text(),val(),html()方法區(qū)別總結(jié)。需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助2013-11-11基于HTML+CSS,jQuery編寫的簡(jiǎn)易計(jì)算器后續(xù)(添加了鍵盤監(jiān)聽)
這篇文章主要介紹了使用HTML+CSS,jQuery編寫的簡(jiǎn)易計(jì)算器后續(xù)(添加了鍵盤監(jiān)聽) 的相關(guān)資料,需要的朋友可以參考下2016-01-01基于jquery實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于jquery二級(jí)聯(lián)動(dòng)效果的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03關(guān)于jquery動(dòng)態(tài)增減控件的一些想法和小插件
這段代碼壓縮到100行內(nèi),而且擴(kuò)展方便,可以非常輕松的增減控件的數(shù)量,使用非常簡(jiǎn)單。2010-08-08