詳解JavaScript的計(jì)時(shí)器和按鈕效果設(shè)置
計(jì)時(shí)器效果:

<div>
<font id='timeCount' style='display:inline-block; font-size:72px;width:100px;text-align:right;'>0</font>
//需要固定時(shí)間值的寬度,避免時(shí)間值從9變到10(以及從99變到100)時(shí)后面三張圖片的位置發(fā)生變化
//但是font是行內(nèi)元素,無法設(shè)置寬度,所以把font變?yōu)樾袃?nèi)塊元素display:inline-block
<img src='start.png' class='imgBtn' onclick="start(this)" >
<img src='suspend.png' class='imgBtn' onclick="suspend(this)">
<img src='stop.png' class='imgBtn' onclick="stop(this)">
</div>.imgBtn{
cursor:pointer;
width:25px;
height:25px;
}var timerState=2;//0-start(正在計(jì)時(shí)) 1-suspend(暫停計(jì)時(shí)) 2-stop(停止計(jì)時(shí))
var timerID;//計(jì)時(shí)器
//點(diǎn)擊開始按鈕,調(diào)用該函數(shù)
function start(obj){
if(timerState==0) //如果當(dāng)前狀態(tài)為正在計(jì)時(shí),本次點(diǎn)擊不起作用
return;
else
{
timerState=0;//標(biāo)識(shí) 正在計(jì)時(shí)
changeImgBtnState(); //改變按鈕的顯示效果
timerID=setInterval("f7()",500); //啟動(dòng)計(jì)時(shí)器
}
}
function suspend(obj){
if(timerState==1 || timerState==2)
return; //如果當(dāng)前狀態(tài)為 暫停計(jì)時(shí) 或 停止計(jì)時(shí),本次點(diǎn)擊不起作用
else
{
timerState=1; //標(biāo)識(shí) 暫停計(jì)時(shí)
changeImgBtnState(); //改變按鈕的顯示效果
clearInterval(timerID); //清除計(jì)時(shí)器
}
}
function stop(obj){
if(timerState==2) //如果當(dāng)前狀態(tài)為 停止計(jì)時(shí),本次點(diǎn)擊不起作用
return;
if(timerState==0) //如果當(dāng)前狀態(tài)為正在計(jì)時(shí),清除計(jì)時(shí)器
clearInterval(timerID);
document.getElementById('timeCount').innerHTML=0; //計(jì)時(shí)數(shù)值清零
timerState=2; //標(biāo)識(shí) 停止計(jì)時(shí)
changeImgBtnState(); //改變按鈕的顯示效果
}
function f7()
{
var i=document.getElementById('timeCount').innerHTML;
document.getElementById('timeCount').innerHTML=parseInt(i)+1;
}
function changeImgBtnState(){
var imgBtn=document.getElementsByClassName('imgBtn');
for(var i=0;i<3;i++){
imgBtnState(imgBtn[i],timerState!=i);
}
}
function imgBtnState(obj,flag){
if(flag==false) //按鈕不可用
obj.style.cssText="border:1px solid black;width:15px;height:15px;padding:5px;";
else
obj.style.cssText="border:0px solid black;width:25px;height:25px;padding:0px;";
}總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
JavaScript不刷新實(shí)現(xiàn)瀏覽器的前進(jìn)后退功能
這篇文章主要介紹了JavaScript不刷新實(shí)現(xiàn)瀏覽器的前進(jìn)后退功能,本文給出了HTML5解決方案、老舊瀏覽器的寫法等方法,需要的朋友可以參考下2014-11-11
bootstrap 下拉多選框進(jìn)行多選傳值問題代碼分析
項(xiàng)目開發(fā)遇到個(gè)問題,就是引入bootstrap下拉多選框進(jìn)行多選的時(shí)候,用form表單提交到后臺(tái),獲取不到多選的值,只能獲取的選擇的第一個(gè)值,怎么回事呢?下面小編給大家分析下bootstrap 下拉多選框進(jìn)行多選傳值問題,一起看看吧2017-02-02
通過JS解決頁面刷新導(dǎo)致按鈕OnClientClick事件消失問題
這篇文章主要介紹了如何通過JS解決頁面刷新導(dǎo)致按鈕OnClientClick事件消失問題,OnClientClick 提供客戶端JS執(zhí)行能力,并以 return false 或 return true 來決定是否繼續(xù)執(zhí)行 OnClick 事件,需要的朋友可以參考下2024-12-12
微信小程序?qū)崿F(xiàn)通過js操作wxml的wxss屬性示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)通過js操作wxml的wxss屬性,結(jié)合實(shí)例形式分析了微信小程序使用js操作wxml的wxss屬性相關(guān)原理、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-12-12
深入理解Javascript動(dòng)態(tài)方法調(diào)用與參數(shù)修改的問題
這篇文章主要是對(duì)Javascript動(dòng)態(tài)方法調(diào)用與參數(shù)修改的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12
javascript Error 對(duì)象 錯(cuò)誤處理
javascript常見error對(duì)象處理,錯(cuò)誤代碼集合2008-05-05
微信公眾號(hào)JS-SDK獲取當(dāng)前經(jīng)緯度以及地址信息的方法
最近微信JS-SDK開發(fā)過程中,遇到了獲取坐標(biāo)位置的需求,所以下面這篇文章主要給大家介紹了關(guān)于微信公眾號(hào)JS-SDK獲取當(dāng)前經(jīng)緯度以及地址信息的相關(guān)資料,需要的朋友可以參考下2022-06-06
jQuery實(shí)現(xiàn)手風(fēng)琴特效
這篇文章主要為大家詳細(xì)介紹了前端js實(shí)現(xiàn)手風(fēng)琴效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01

