JavaScript使用setTimeout實(shí)現(xiàn)倒計(jì)時(shí)效果
為了加強(qiáng)對(duì)JavaScript原生代碼的編寫能力,以及鞏固setTimeout()的使用方法,制作了一個(gè)倒計(jì)時(shí)的demo,倒計(jì)時(shí)在現(xiàn)在的網(wǎng)站中算是一個(gè)常見的小功能,如果大家喜歡的話可以留下,就當(dāng)作一個(gè)日常實(shí)用的小腳本。
實(shí)現(xiàn)思路
1、先獲取小時(shí)值 將小時(shí)值減1開始進(jìn)行倒計(jì)時(shí) 分鐘59 秒數(shù)59
2、秒數(shù)的個(gè)位從9開始遞減,當(dāng)秒數(shù)個(gè)位小于0時(shí),秒數(shù)的十位減1
3、秒數(shù)的十位小于0時(shí),分鐘的個(gè)位減1
4、分鐘的個(gè)位小于0時(shí),分鐘的十位減1
5、分鐘的十位小于0時(shí),小時(shí)減1
6、小時(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開始自減*/ function second(){ secondBit--; secondBitTxt.innerHTML = secondBit; /*十秒過后*/ if(secondBit < 0){ secondTen--; secondTenTxt.innerHTML = secondTen; secondBit = 9; secondBitTxt.innerHTML = secondBit; /*繼續(xù)倒計(jì)時(shí)*/ setTimeout(second,1000); /*一分鐘過后*/ if(secondTen < 0){ minuteBit--; minuteBitTxt.innerHTML = minuteBit; secondTen = 5; secondTenTxt.innerHTML = secondTen; secondBit = 9; secondBitTxt.innerHTML = secondBit; /*十分鐘過后*/ if(minuteBit < 0){ minuteTen--; minuteTenTxt.innerHTML = minuteTen; minuteBit = 9; minuteBitTxt.innerHTML = minuteBit; } /*一個(gè)小時(shí)過后*/ 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í)行頁面
結(jié)束頁面
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實(shí)現(xiàn)表格點(diǎn)擊排序的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)表格點(diǎn)擊排序的方法,可實(shí)現(xiàn)點(diǎn)擊頂部數(shù)據(jù)項(xiàng)標(biāo)題實(shí)現(xiàn)對(duì)應(yīng)數(shù)據(jù)列的排序效果,涉及javascript鼠標(biāo)事件及數(shù)據(jù)排序的技巧,需要的朋友可以參考下2015-05-05JS switch判斷 三目運(yùn)算 while 及 屬性操作代碼
這篇文章主要介紹了JS switch判斷 三目運(yùn)算 while 及 屬性操作代碼,需要的朋友可以參考下2017-09-09js動(dòng)態(tài)創(chuàng)建上傳表單通過iframe模擬Ajax實(shí)現(xiàn)無刷新
這篇文章主要介紹了js動(dòng)態(tài)創(chuàng)建上傳表單通過iframe模擬Ajax無刷新的具體實(shí)現(xiàn),需要的朋友可以參考下2014-02-02javascript sudoku 數(shù)獨(dú)智力游戲生成代碼
javascript sudoku 數(shù)獨(dú)智力游戲生成代碼,喜歡的朋友可以參考下。2010-03-03js實(shí)現(xiàn)HTML中Select二級(jí)聯(lián)動(dòng)的實(shí)例
下面小編就為大家分享一篇js實(shí)現(xiàn)HTML中Select二級(jí)聯(lián)動(dòng)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01JavaScript實(shí)現(xiàn)快速排序的方法分析
這篇文章主要介紹了JavaScript實(shí)現(xiàn)快速排序的方法,結(jié)合實(shí)例形式分析了快速排序的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-01-01