JavaScript實(shí)現(xiàn)京東秒殺效果
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)京東秒殺效果的具體代碼,供大家參考,具體內(nèi)容如下

首先先利用html和css搭出架子:
* {
margin: 0;
padding: 0;
}
.box {
width: 190px;
height: 270px;
color: #fff;
text-align: center;
margin: 100px auto;
background-color: #d00;
padding-top: 40px;
box-sizing: border-box;
}
.box>h3 {
font-size: 26px;
}
.box>p:nth-of-type(1) {
color: rgba(255, 255, 255, .5);
margin-top: 5px;
}
.box>i {
display: inline-block;
margin-top: 5px;
margin-bottom: 5px;
font-size: 40px;
}
.box>.time {
display: flex;
justify-content: center;
margin-top: 10px;
}
.time>div {
width: 40px;
height: 40px;
background: #333;
line-height: 40px;
text-align: center;
font-weight: 700;
position: relative;
}
.time>div::before {
content: "";
display: block;
width: 100%;
height: 2px;
background: #d00;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.time>.minute {
margin: 0 10px;
}
<div class="box">
<h3>京東秒殺</h3>
<p>FLASH DEALS</p>
<i class="iconfont icon-lightningbshandian"></i>
<p>本場(chǎng)距離結(jié)束還剩</p>
<div class="time">
<div class="hour">00</div>
<div class="minute">00</div>
<div class="second">00</div>
</div>
</div>

再來(lái)設(shè)計(jì)其邏輯部分:
獲取相關(guān)元素
定義一個(gè)處理兩個(gè)時(shí)間差的函數(shù),需要注意的是對(duì)于小時(shí)、分鐘、秒鐘如果小于10,那么應(yīng)該在前面添加“0”來(lái)占位,最后利用對(duì)象的形式將其返回
為了實(shí)現(xiàn)其一個(gè)動(dòng)態(tài)的效果,我們可以利用setInterval(),將獲取到的時(shí)分秒全部放入進(jìn)去,使其每隔一秒就變化一次
為了用戶一打開(kāi)就能看到效果,我們可以將獲取到的時(shí)分秒封裝到一個(gè)函數(shù)里,在setInterval()里和外直接調(diào)用函數(shù)即可實(shí)現(xiàn)
//1.獲取需要操作的元素
const oHour = document.querySelector(".hour");
const oMinute = document.querySelector(".minute");
const oSecond = document.querySelector(".second");
//2.處理時(shí)間差
const remDate = new Date("2021-10-28 23:59:59");
setTime(remDate);
//開(kāi)啟定時(shí)器
setInterval(function() {
setTime(remDate);
}, 1000);
//為了讓用戶一進(jìn)來(lái)就看得到效果,而不是先是三個(gè)00
// 我們可以對(duì)其進(jìn)行封裝處理
function setTime(remDate) {
const obj = getDifferTime(remDate);
// console.log(obj);
//3.將差值設(shè)置給元素
oHour.innerText = obj.hour;
oMinute.innerText = obj.minute;
oSecond.innerText = obj.second;
}
function getDifferTime(remDate, curDate = new Date()) {
//1.得到兩個(gè)時(shí)間之間的差值(毫秒)
const differTime = remDate - curDate;
//2.得到兩個(gè)時(shí)間之間的差值(秒 )
const differSecond = differTime / 1000;
//3.利用相差的總秒數(shù) / 每一天的秒數(shù) = 相差的天數(shù)
let day = Math.floor(differSecond / (60 * 60 * 24));
day = day >= 10 ? day : "0" + day;
//4.利用相差的總秒數(shù) / 小時(shí) % 24
let hour = Math.floor(differSecond / (60 * 60) % 24);
hour = hour >= 10 ? hour : "0" + hour;
//5.利用相差的總秒數(shù) / 分鐘 % 60
let minute = Math.floor(differSecond / 60 % 60);
minute = minute >= 10 ? minute : "0" + minute;
// 6.利用相差的總秒數(shù) % 秒數(shù)
let second = Math.floor(differSecond % 60);
second = second >= 10 ? second : "0" + second;
return {
day: day,
hour: hour,
minute: minute,
second: second,
}
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaScript仿京東秒殺倒計(jì)時(shí)
- js實(shí)現(xiàn)京東秒殺倒計(jì)時(shí)功能
- JS腳本實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)秒殺點(diǎn)擊
- Javascript實(shí)現(xiàn)商品秒殺倒計(jì)時(shí)(時(shí)間與服務(wù)器時(shí)間同步)
- 如何利用 JS 腳本實(shí)現(xiàn)網(wǎng)頁(yè)全自動(dòng)秒殺搶購(gòu)功能
- PHP+JS實(shí)現(xiàn)的商品秒殺倒計(jì)時(shí)用法示例
- JS實(shí)現(xiàn)商城秒殺倒計(jì)時(shí)功能(動(dòng)態(tài)設(shè)置秒殺時(shí)間)
- JS實(shí)現(xiàn)秒殺倒計(jì)時(shí)特效
相關(guān)文章
Bootstrap登陸注冊(cè)頁(yè)面開(kāi)發(fā)教程
這篇文章主要介紹了Bootstrap登陸注冊(cè)頁(yè)面開(kāi)發(fā)教程,感興趣的小伙伴們可以參考一下2016-07-07
JavaScript寫的一個(gè)DIV 彈出網(wǎng)頁(yè)對(duì)話框
自己整理得一個(gè)JavaScript寫的一個(gè)DIV 彈出網(wǎng)頁(yè)對(duì)話框2009-08-08
JavaScript實(shí)現(xiàn)單擊下拉框選擇直接跳轉(zhuǎn)頁(yè)面的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)單擊下拉框選擇直接跳轉(zhuǎn)頁(yè)面的方法,涉及javascript控制頁(yè)面跳轉(zhuǎn)的相關(guān)技巧,需要的朋友可以參考下2015-07-07
arcgis for js 修改infowindow樣式的方法
下面小編就為大家?guī)?lái)一篇arcgis for js 修改infowindow樣式的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11
JS+CSS實(shí)現(xiàn)仿支付寶菜單選中效果代碼
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)仿支付寶菜單選中效果代碼,涉及JavaScript基于鼠標(biāo)事件動(dòng)態(tài)設(shè)置頁(yè)面css樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
uniapp web-view組件雙向通信的問(wèn)題記錄
本文主要介紹在uniapp中頁(yè)面與webview組件內(nèi)頁(yè)面的雙向通信問(wèn)題,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07
JavaScript函數(shù)定義方法實(shí)例詳解
這篇文章主要介紹了JavaScript函數(shù)定義方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript函數(shù)的聲明、定義、調(diào)用等原理與常見(jiàn)操作技巧,需要的朋友可以參考下2019-03-03
JavaScript判斷數(shù)組是否存在key的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇JavaScript判斷數(shù)組是否存在key的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08

