js實現(xiàn)京東秒殺倒計時功能
本文實例為大家分享了js實現(xiàn)京東秒殺倒計時功能的具體代碼,供大家參考,具體內(nèi)容如下
首先給大家看看效果圖,因為是做的移動端的,所以放大給大家看看局部就行:
關(guān)于實現(xiàn)京東秒殺,之前用過其他的方法,今天給大家分享一個原生的方法吧,不會很難.
1、倒計時頁面結(jié)構(gòu):
<div class="secondkill"> <div class="top"> <span class="red fl">掌上秒殺</span> <span class="num fl">0</span> <span class="num fl">5</span> <span class="colon fl">:</span> <span class="num fl">3</span> <span class="num fl">5</span> <span class="colon fl">:</span> <span class="num fl">3</span> <span class="num fl">0</span> <span class="more fr">更多</span> </div>
2、css樣式:這個是用css的編譯器sass寫的
.secondkill { .top { height: 40px; border-top: 3px solid $jdred; border-bottom: 1px solid #ccc; padding-top: 5px; .red { color: $jdred; } .num { background-color: #000; margin: 0px 3px; padding: 3px; color: white; } }
3、js部分:
//倒計時 //1. 指定倒計時的到期時間(2018-5-29 21:08:49) //可以直接使用年月日時分秒來創(chuàng)建一個date對象,但是月是從0開始的 var to = new Date(2018, 4, 29, 20, 20, 10); function antitime() { var now = new Date(); //2. 拿到當(dāng)前時間和過期時間之間的時間差(毫秒) var deltaTime = to - now; //到期時間和當(dāng)前時間相差的毫秒數(shù) //如果超時了,就停止倒計時 if (deltaTime <= 0) { //停止計時器 window.clearInterval(timer); //停止執(zhí)行下面的代碼 return; } //已知毫秒數(shù),算出幾分幾秒幾秒 var m = Math.floor(deltaTime / (60*1000)); //算出有多少秒 var s = Math.floor(deltaTime / 1000 % 60); //算出多少毫秒, 毫秒數(shù)只顯示10位和百位 var ms = Math.floor(deltaTime % 1000 / 10); //把時間的數(shù)字轉(zhuǎn)成字符串, 如果分秒毫秒不足10, 則前面補(bǔ)0 var timeStr = "" + (m<10?"0"+m:m) + (s<10?"0"+s:s) + (ms<10?"0"+ms:ms); console.log(timeStr); //063535 //each是用來遍歷.num元素, 其實你可以理解成循環(huán) $(".secondkill .num").each(function(index, span) { //console.log(span); $(span).html(timeStr.substring(index, index+1)); //$(span), span默認(rèn)是一個js對象,需要用$(span)變成一個jquery對象 //$(span).html();這個方法是用來設(shè)置span里面的值的 //timeStr.subSring();該方法是用來截取字符串 “abcdefg” }); } //每十毫秒執(zhí)行一次 var timer = setInterval(antitime, 10); });
注意部分:
1、注意這個部分,時間要給定一個時間,比如京東上午十點秒殺結(jié)束,那這里時間就要填10點,注意月份是從0開始的,所以5月要寫4月。這個時間如果過了這個倒計時就不會再執(zhí)行了的,大家謹(jǐn)記。
var to = new Date(2018, 4, 29, 20, 20, 10);
2、這里拿到的是毫秒,在后面計算分秒毫秒的時候大家要注意換算。
//2. 拿到當(dāng)前時間和過期時間之間的時間差(毫秒) var deltaTime = to - now; //到期時間和當(dāng)前時間相差的毫秒數(shù)
3、要判斷,如果不足10就要給前面加一個0。
//把時間的數(shù)字轉(zhuǎn)成字符串, 如果分秒毫秒不足10, 則前面補(bǔ)0 var timeStr = "" + (m<10?"0"+m:m) + (s<10?"0"+s:s) + (ms<10?"0"+ms:ms); console.log(timeStr);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實現(xiàn)審核流程狀態(tài)的動態(tài)顯示進(jìn)度條
對于有很多流程的東西,我們希望能夠根據(jù)不同的階段,用流程條對應(yīng)地進(jìn)行顯示,非常直觀,給用戶帶來極好的用戶體驗,下面小編給大家分享JavaScript實現(xiàn)審核流程狀態(tài)的動態(tài)顯示進(jìn)度條功能,需要的的朋友參考下2017-03-03jQuery及JS實現(xiàn)循環(huán)中暫停的方法
這篇文章主要介紹了jQuery及JS實現(xiàn)循環(huán)中暫停的方法,以實例形式分析了循環(huán)中暫停的原理及實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下2015-02-02也說JavaScript中String類的replace函數(shù)
最近讀了sharpxiajun的博文《javascript筆記--String類replace函數(shù)的一些事》,感覺寫的很好,很有幫助。2011-09-09javascript實現(xiàn)的時間格式加8小時功能示例
這篇文章主要介紹了javascript實現(xiàn)的時間格式加8小時功能,涉及javascript日期時間轉(zhuǎn)換與運算相關(guān)操作技巧,需要的朋友可以參考下2019-06-06微信小程序picker組件關(guān)于objectArray數(shù)據(jù)類型的綁定方法
這篇文章主要介紹了微信小程序picker組件關(guān)于objectArray數(shù)據(jù)類型的綁定方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03bootstrapfileinput實現(xiàn)文件自動上傳
這篇文章主要介紹了bootstrapfileinput實現(xiàn)文件自動上傳,bootstrap fileinput插件對多種類型的文件提供文件預(yù)覽,并且提供了多選等功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11