JavaScript仿京東實(shí)現(xiàn)秒殺倒計(jì)時(shí)案例詳解
功能介紹:
1、這個(gè)倒計(jì)時(shí)是不斷變化的,因此需要定時(shí)器來(lái)自動(dòng)變化(setInterval)
2、三個(gè)黑色的盒子,分別存放時(shí)、分秒
3、三個(gè)盒子利用innerHTML存入倒計(jì)時(shí)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div { background-color: black; width: 50px; height: 50px; margin-left: 20px; float: left; color: white; font-size: 20px; text-align: center; line-height: 50px; } </style> </head> <body> <div class='h1'></div> <div class='m'></div> <div class='s1'></div> <script> //把時(shí)間放到div中去 var div = document.querySelectorAll('div') var timer1 = setInterval(function() { var date1 = new Date(2022, 3, 2, 18, 40, 0); //獲得到點(diǎn)截至?xí)r間距離標(biāo)準(zhǔn)時(shí)間的毫秒數(shù) var date2 = new Date(); //獲得目前時(shí)間距離準(zhǔn)時(shí)間的毫秒數(shù) var date = (date1 - date2) / 1000; //用到點(diǎn)時(shí)間的毫秒數(shù)減去現(xiàn)在時(shí)間的毫秒數(shù),必須先化為秒單位,之后再進(jìn)行轉(zhuǎn)換 var h = parseInt((date / 60 / 60) % 24); //小時(shí) var m = parseInt((date / 60) % 60); //分鐘 var s = parseInt(date % 60); //秒 一定要包含在這個(gè)函數(shù)中,因?yàn)槭情g隔1秒就要重新算一遍,需要提高準(zhǔn)確率的話,把秒數(shù)減少(刷新間隔) div[2].innerHTML = s div[1].innerHTML = m div[0].innerHTML = h }, [1]) </script> </body> </html>
改進(jìn):
<script> //把時(shí)間放到div中去 var div = document.querySelectorAll('div') var timer1 = setInterval(fn, [1000]) var date1 = new Date(2022, 3, 2, 18, 40, 0); var date2 = new Date(); var date = (date1 - date2) / 1000; var h = parseInt((date / 60 / 60) % 24); var m = parseInt((date / 60) % 60); var s = parseInt(date % 60); div[2].innerHTML = s div[1].innerHTML = m div[0].innerHTML = h //解決剛刷新,數(shù)字不顯示的問(wèn)題 function fn() { var date1 = new Date(2022, 3, 2, 18, 40, 0); //獲得到點(diǎn)截至?xí)r間距離標(biāo)準(zhǔn)時(shí)間的毫秒數(shù) var date2 = new Date(); //獲得目前時(shí)間距離準(zhǔn)時(shí)間的毫秒數(shù) var date = (date1 - date2) / 1000; //用到點(diǎn)時(shí)間的毫秒數(shù)減去現(xiàn)在時(shí)間的毫秒數(shù),必須先化為秒單位,之后再進(jìn)行轉(zhuǎn)換 var h = parseInt((date / 60 / 60) % 24); //小時(shí) var m = parseInt((date / 60) % 60); //分鐘 var s = parseInt(date % 60); //秒 一定要包含在這個(gè)函數(shù)中(最好是封裝一個(gè)函數(shù)),因?yàn)槭情g隔1秒就要重新算一遍,需要提高準(zhǔn)確率的話,把秒數(shù)減少(刷新間隔).如果間隔比較大的話,一刷新頁(yè)面,會(huì)產(chǎn)生空白。解決方法就是,在未調(diào)用這個(gè)函數(shù)前,先把時(shí)間放入到div盒子中 div[2].innerHTML = s div[1].innerHTML = m div[0].innerHTML = h } </script>
添加停止倒計(jì)時(shí)按鈕:
<button>停止倒計(jì)時(shí)</button> var btn = document.querySelector('button') btn.addEventListener('click', function() { clearInterval(timer1) })
到此這篇關(guān)于JavaScript仿京東實(shí)現(xiàn)秒殺倒計(jì)時(shí)案例詳解的文章就介紹到這了,更多相關(guān)JavaScript秒殺倒計(jì)時(shí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
npm?install報(bào)錯(cuò)Error:EPERM:operation?not?permitted,rename解決
這篇文章主要給大家介紹了關(guān)于npm?install報(bào)錯(cuò)Error:EPERM:operation?not?permitted,rename的解決辦法,文中介紹了可能遇到的多種原因以及解決辦法,需要的朋友可以參考下2024-01-01在JavaScript中監(jiān)聽(tīng)I(yíng)ME鍵盤(pán)輸入事件
在 JavaScript 中監(jiān)聽(tīng)用戶的鍵盤(pán)輸入是很容易的事情,但用戶一旦使用了輸入法,問(wèn)題就變得復(fù)雜了。2011-05-05JavaScript顯示當(dāng)然日期和時(shí)間即年月日星期和時(shí)間
使用js顯示當(dāng)然日期和時(shí)間在網(wǎng)頁(yè)中很是常見(jiàn),方法有很多,不過(guò)多說(shuō)大同小異,下面有個(gè)不錯(cuò)的示例,需要的朋友可以感受下2013-10-10多次注冊(cè)事件會(huì)導(dǎo)致一個(gè)事件被觸發(fā)多次的解決方法
一個(gè)JavaScript邏輯,會(huì)自動(dòng)綁定函數(shù)到按鈕的click事件,但是這段代碼會(huì)反復(fù)注冊(cè)事件,具體的解決方法如下,感興趣的朋友可以參考下2013-08-08