JavaScript可以開始和停止的倒數計時
本章節分享一段程式碼例項,它實現了倒數計時效果,並且能夠實現開始和停止的控制。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> body, div{ margin:0; padding:0; } body{ color:#fff; font:16px/1.5 \5fae\8f6f\96c5\9ed1; } #countdown{ width:300px; text-align:center; background:#1a1a1a; margin:10px auto; padding:20px 0; } input{ border:0; width:283px; height:50px; cursor:pointer; margin-top:20px; } span{ color:#000; width:80px; line-height:2; background:#fbfbfb; border:2px solid #b4b4b4; margin:0 10px; padding:0 10px; } </style> <script> window.onload=function (){ var oCountDown=document.getElementById("countdown"); var aInput=oCountDown.getElementsByTagName("input")[0]; var timer=null; aInput.onclick=function(){ this.value=="開始倒數計時"?(timer=setInterval(updateTime,1000),this.value="結束倒數計時") :(clearInterval(timer),this.value="開始倒數計時"); }; function format(a){ return a.toString().replace(/^(\d)$/,'0$1') } function updateTime (){ var aSpan=oCountDown.getElementsByTagName("span"); var oRemain=aSpan[0].innerHTML.replace(/^0/,'') * 60 +parseInt(aSpan[1].innerHTML.replace(/^0/,'')); if(oRemain<=0){ clearInterval(timer); return } oRemain--; aSpan[0].innerHTML=format(parseInt(oRemain / 60)); oRemain %= 60; aSpan[1].innerHTML=format(parseInt(oRemain)); } } </script> </head> <body> <div id="countdown"> <span>01</span>分鐘<span>40</span>秒 <input type="button" value="開始倒數計時" /> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload=function (){},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).var oCountDown=document.getElementById("countdown"),獲取id屬性值為countdown的元素物件。
(3).var aInput=oCountDown.getElementsByTagName("input")[0],獲取第一個input元素,也就是按鈕元素。
(4).var timer=null,用來作為定時器方法的標識。
(5).aInput.onclick=function(){},為按鈕註冊click事件處理函式。
(6).this.value=="開始倒數計時"?(timer=setInterval(updateTime,1000),this.value="結束倒數計時") : (clearInterval(timer),this.value="開始倒數計時"),使用三元運算子來設定按鈕的value屬性值,和開始和停止倒數計時效果。
(7).function format(a){
return a.toString().replace(/^(\d)$/,'0$1');
},格式化數字,如果是個位數字,前面加0.
(8).function updateTime (){},此函式是實現倒數計時效果的核心。
(9).var aSpan=oCountDown.getElementsByTagName("span"),獲取span元素集合。
(10).var oRemain=aSpan[0].innerHTML.replace(/^0/,'') * 60+parseInt(aSpan[1].innerHTML.replace(/^0/,'')),使用正規表示式將開始的零刪除,並計算出所有時間的秒數。
(11).if(oRemain<=0){
clearInterval(timer);
return
},如果剩餘的秒數小於等於零,自然要停止倒數計時效果了,並跳出函式。
(12).oRemain--,秒數減一。
(13).aSpan[0].innerHTML=format(parseInt(oRemain / 60)),計算並顯示分鐘數。
(14).oRemain %= 60,進行求餘運算,算出秒數。
(15).aSpan[1].innerHTML=format(parseInt(oRemain)),顯示秒數。
二.相關閱讀:
(1).getElementsByTagName()參閱document.getElementsByTagName()一章節。
(2).setInterval()參閱setInterval()一章節。
(3).replace()參閱正規表示式replace()函式一章節。
(4).parseInt()參閱javascript parseInt()一章節。
(5).求餘運算可以參閱javascript求餘運算一章節。
相關文章
- JavaScript倒數計時JavaScript
- js自動倒數計時程式碼,倒數計時完畢時自動停止迴圈JS
- JavaScript 天小時分鐘和秒倒數計時JavaScript
- javascript小時、分鐘和秒倒數計時效果JavaScript
- js 根據開始日期和結束日期顯示倒數計時JS
- JavaScript 年月日倒數計時JavaScript
- javascript日期格式化和倒數計時外掛JavaScript
- JavaScript 倒數計時關閉頁面JavaScript
- JavaScript 倒數計時60秒程式碼JavaScript
- JavaScript 倒數計時踩坑集錦JavaScript
- JavaScript倒數計時程式碼例項JavaScript
- JavaScript 前端倒數計時糾偏實現JavaScript前端
- JavaScript 原生 小案例 60秒倒數計時JavaScript
- JavaScript倒數計時隱藏廣告詳解JavaScript
- JavaScript春節倒數計時程式碼例項JavaScript
- JavaScript 原生 小案例 秒殺時鐘倒數計時JavaScript
- JavaScript倒數計時60秒程式碼詳解JavaScript
- js——倒數計時JS
- JS倒數計時JS
- win10 自帶倒數計時如何設定_win10開啟計時器倒數計時的方法Win10
- 倒數計時然後才可以點選效果程式碼
- JavaScript年月日精確到秒倒數計時JavaScript
- JavaScript簡訊重發按鈕可用倒數計時JavaScript
- Javascript倒數計時元件new TimeSpan(hours, minutes, minutes)JavaScript元件
- Flutter倒數計時/計時器的實現Flutter
- Kookjs 倒數計時JS
- 倒數計時34天
- 直播系統app原始碼,自定義可以暫停的倒數計時APP原始碼
- 可以防止重新整理重置的倒數計時例項程式碼
- 直播平臺搭建,計時和倒數計時功能的分別實現
- iOS倒數計時設計思路和一個系統時間的坑iOS
- 倒數計時應用定製化開發
- JavaScript輸入字串字數倒計JavaScript字串
- laravel 9 倒數計時了Laravel
- 小程式倒數計時深究
- canvas環形倒數計時Canvas
- 倒數計時門栓(CountDownLatch)CountDownLatch
- javascript實現表單可點選倒數計時程式碼JavaScript