JavaScript使用setTimeout實(shí)現(xiàn)倒計(jì)時(shí)效果
為了加強(qiáng)對(duì)JavaScript原生代碼的編寫(xiě)能力,以及鞏固setTimeout()的使用方法,制作了一個(gè)倒計(jì)時(shí)的demo,倒計(jì)時(shí)在現(xiàn)在的網(wǎng)站中算是一個(gè)常見(jiàn)的小功能,如果大家喜歡的話(huà)可以留下,就當(dāng)作一個(gè)日常實(shí)用的小腳本。
實(shí)現(xiàn)思路
1、先獲取小時(shí)值 將小時(shí)值減1開(kāi)始進(jìn)行倒計(jì)時(shí) 分鐘59 秒數(shù)592、秒數(shù)的個(gè)位從9開(kāi)始遞減,當(dāng)秒數(shù)個(gè)位小于0時(shí),秒數(shù)的十位減13、秒數(shù)的十位小于0時(shí),分鐘的個(gè)位減14、分鐘的個(gè)位小于0時(shí),分鐘的十位減15、分鐘的十位小于0時(shí),小時(shí)減16、小時(shí)數(shù)小于0后停止計(jì)時(shí)全部為0
實(shí)現(xiàn)代碼
html
<p>倒計(jì)時(shí):</p><span id='hour'>5</span><span>:</span><span id='minuteTen'>0</span><span id='minuteBit'>0</span><span>:</span><span id='secondTen'>0</span><span id='secondBit'>0</span>
css
span{ display: inline-block; width: 20px; height: 20px; background-color: #000000; color: #ffffff; text-align: center; }
JavaScript
function time(){ /*小時(shí)*/ var hourTxt = document.getElementById('hour'); var hour = parseInt(document.getElementById('hour').innerHTML); /*分鐘*/ var minuteTenTxt = document.getElementById('minuteTen'); var minuteBitTxt = document.getElementById('minuteBit'); var minuteTen = parseInt(document.getElementById('minuteTen').innerHTML); var minuteBit = parseInt(document.getElementById('minuteBit').innerHTML); /*秒*/ var secondTenTxt = document.getElementById('secondTen'); var secondBitTxt = document.getElementById('secondBit'); var secondTen = parseInt(document.getElementById('secondTen').innerHTML); var secondBit = parseInt(document.getElementById('secondBit').innerHTML); function start(){ hour--; hourTxt.innerHTML = hour; minuteTen = 5; minuteTenTxt.innerHTML = minuteTen; minuteBit = 9; minuteBitTxt.innerHTML = minuteBit; secondTen = 5; secondTenTxt.innerHTML = secondTen; secondBit = 9; secondBitTxt.innerHTML = secondBit; /*secondBit開(kāi)始自減*/ function second(){ secondBit--; secondBitTxt.innerHTML = secondBit; /*十秒過(guò)后*/ if(secondBit < 0){ secondTen--; secondTenTxt.innerHTML = secondTen; secondBit = 9; secondBitTxt.innerHTML = secondBit; /*繼續(xù)倒計(jì)時(shí)*/ setTimeout(second,1000); /*一分鐘過(guò)后*/ if(secondTen < 0){ minuteBit--; minuteBitTxt.innerHTML = minuteBit; secondTen = 5; secondTenTxt.innerHTML = secondTen; secondBit = 9; secondBitTxt.innerHTML = secondBit; /*十分鐘過(guò)后*/ if(minuteBit < 0){ minuteTen--; minuteTenTxt.innerHTML = minuteTen; minuteBit = 9; minuteBitTxt.innerHTML = minuteBit; } /*一個(gè)小時(shí)過(guò)后*/ if(minuteTen < 0){ hour--; hourTxt.innerHTML = hour; minuteTen = 5; minuteTenTxt.innerHTML = minuteTen; minuteBit = 9; minuteBitTxt.innerHTML = minuteBit; secondTen = 5; secondTenTxt.innerHTML = secondTen; secondBit = 9; secondBitTxt.innerHTML = secondBit; } /*倒計(jì)時(shí)結(jié)束*/ if(hour < 0 ){ hour = 0; hourTxt.innerHTML = hour; minuteTen = 0; minuteTenTxt.innerHTML = minuteTen; minuteBit = 0; minuteBitTxt.innerHTML = minuteBit; secondTen = 0; secondTenTxt.innerHTML = secondTen; secondBit = 0; secondBitTxt.innerHTML = secondBit; clearTimeout(second); clearTimeout(start); } } }else{ setTimeout(second,1000); } } setTimeout(second,1000); } setTimeout(start,1000);}
執(zhí)行頁(yè)面
結(jié)束頁(yè)面
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. PHP字符串前后字符或空格刪除方法介紹2. css進(jìn)階學(xué)習(xí) 選擇符3. XML入門(mén)的常見(jiàn)問(wèn)題(一)4. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法5. Laravel操作session和cookie的教程詳解6. jsp實(shí)現(xiàn)登錄界面7. Echarts通過(guò)dataset數(shù)據(jù)集實(shí)現(xiàn)創(chuàng)建單軸散點(diǎn)圖8. html小技巧之td,div標(biāo)簽里內(nèi)容不換行9. 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式10. 解析原生JS getComputedStyle
