您好,登錄后才能下訂單哦!
本文實例為大家分享了js實現京東秒殺倒計時功能的具體代碼,供大家參考,具體內容如下
首先給大家看看效果圖,因為是做的移動端的,所以放大給大家看看局部就行:
關于實現京東秒殺,之前用過其他的方法,今天給大家分享一個原生的方法吧,不會很難.
1、倒計時頁面結構:
<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) //可以直接使用年月日時分秒來創建一個date對象,但是月是從0開始的 var to = new Date(2018, 4, 29, 20, 20, 10); function antitime() { var now = new Date(); //2. 拿到當前時間和過期時間之間的時間差(毫秒) var deltaTime = to - now; //到期時間和當前時間相差的毫秒數 //如果超時了,就停止倒計時 if (deltaTime <= 0) { //停止計時器 window.clearInterval(timer); //停止執行下面的代碼 return; } //已知毫秒數,算出幾分幾秒幾秒 var m = Math.floor(deltaTime / (60*1000)); //算出有多少秒 var s = Math.floor(deltaTime / 1000 % 60); //算出多少毫秒, 毫秒數只顯示10位和百位 var ms = Math.floor(deltaTime % 1000 / 10); //把時間的數字轉成字符串, 如果分秒毫秒不足10, 則前面補0 var timeStr = "" + (m<10?"0"+m:m) + (s<10?"0"+s:s) + (ms<10?"0"+ms:ms); console.log(timeStr); //063535 //each是用來遍歷.num元素, 其實你可以理解成循環 $(".secondkill .num").each(function(index, span) { //console.log(span); $(span).html(timeStr.substring(index, index+1)); //$(span), span默認是一個js對象,需要用$(span)變成一個jquery對象 //$(span).html();這個方法是用來設置span里面的值的 //timeStr.subSring();該方法是用來截取字符串 “abcdefg” }); } //每十毫秒執行一次 var timer = setInterval(antitime, 10); });
注意部分:
1、注意這個部分,時間要給定一個時間,比如京東上午十點秒殺結束,那這里時間就要填10點,注意月份是從0開始的,所以5月要寫4月。這個時間如果過了這個倒計時就不會再執行了的,大家謹記。
var to = new Date(2018, 4, 29, 20, 20, 10);
2、這里拿到的是毫秒,在后面計算分秒毫秒的時候大家要注意換算。
//2. 拿到當前時間和過期時間之間的時間差(毫秒) var deltaTime = to - now; //到期時間和當前時間相差的毫秒數
3、要判斷,如果不足10就要給前面加一個0。
//把時間的數字轉成字符串, 如果分秒毫秒不足10, 則前面補0 var timeStr = "" + (m<10?"0"+m:m) + (s<10?"0"+s:s) + (ms<10?"0"+ms:ms); console.log(timeStr);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。