溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用JavaScript實現(xiàn)京東秒殺效果

發(fā)布時間:2021-11-08 08:59:37 來源:億速云 閱讀:239 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“怎么用JavaScript實現(xiàn)京東秒殺效果”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

 怎么用JavaScript實現(xiàn)京東秒殺效果

首先先利用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>h4 {
            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">
        <h4>京東秒殺</h4>
        <p>FLASH DEALS</p>
        <i class="iconfont icon-lightningbshandian"></i>
        <p>本場距離結(jié)束還剩</p>
        <div class="time">
            <div class="hour">00</div>
            <div class="minute">00</div>
            <div class="second">00</div>
        </div>
 </div>

怎么用JavaScript實現(xiàn)京東秒殺效果

再來設計其邏輯部分:

獲取相關(guān)元素

定義一個處理兩個時間差的函數(shù),需要注意的是對于小時、分鐘、秒鐘如果小于10,那么應該在前面添加“0”來占位,最后利用對象的形式將其返回

為了實現(xiàn)其一個動態(tài)的效果,我們可以利用setInterval(),將獲取到的時分秒全部放入進去,使其每隔一秒就變化一次

為了用戶一打開就能看到效果,我們可以將獲取到的時分秒封裝到一個函數(shù)里,在setInterval()里和外直接調(diào)用函數(shù)即可實現(xiàn)

//1.獲取需要操作的元素
const oHour = document.querySelector(".hour");
const oMinute = document.querySelector(".minute");
const oSecond = document.querySelector(".second");
 
//2.處理時間差
 const remDate = new Date("2021-10-28 23:59:59");
 
        setTime(remDate);
 
        //開啟定時器
        setInterval(function() {
            setTime(remDate);
        }, 1000);
 
        //為了讓用戶一進來就看得到效果,而不是先是三個00
        // 我們可以對其進行封裝處理
        function setTime(remDate) {
            const obj = getDifferTime(remDate);
            // console.log(obj);
 
            //3.將差值設置給元素
            oHour.innerText = obj.hour;
            oMinute.innerText = obj.minute;
            oSecond.innerText = obj.second;
        }
 
        function getDifferTime(remDate, curDate = new Date()) {
            //1.得到兩個時間之間的差值(毫秒)
            const differTime = remDate - curDate;
 
            //2.得到兩個時間之間的差值(秒 )
            const differSecond = differTime / 1000;
 
            //3.利用相差的總秒數(shù) / 每一天的秒數(shù) = 相差的天數(shù)
            let day = Math.floor(differSecond / (60 * 60 * 24));
            day = day >= 10 ? day : "0" + day;
 
            //4.利用相差的總秒數(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,
            }
        }

怎么用JavaScript實現(xiàn)京東秒殺效果

“怎么用JavaScript實現(xiàn)京東秒殺效果”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI