怎么理解里面說的防止定時(shí)器累積?哪位解釋下

rlman
2014-05-28
1 回答
舉報(bào)
0/150
提交
取消
怎么理解里面說的防止定時(shí)器累積?哪位解釋下
2014-05-28
舉報(bào)
2014-05-29
當(dāng)我們定義了一個(gè)定時(shí)器以后,我們可以通過事件來觸發(fā)這個(gè)定時(shí)器開始工作,例如:點(diǎn)擊按鈕,讓一個(gè)div的寬度從1px加寬到1000px,根據(jù)我們的設(shè)定步長(比如,10px/毫秒),就會(huì)產(chǎn)生一個(gè)動(dòng)畫效果。試想一下,在這個(gè)加寬的動(dòng)畫還沒有結(jié)束時(shí),我們?cè)俅吸c(diǎn)擊了按鈕,此時(shí),又會(huì)有一個(gè)新的定時(shí)器開始工作,此時(shí),有兩個(gè)定時(shí)器,同時(shí)作用在這個(gè)div的動(dòng)畫上,整個(gè)的動(dòng)畫速度就會(huì)加倍,你點(diǎn)擊按鈕的次數(shù)越多,累加的定時(shí)器越多,動(dòng)畫速度也會(huì)越快,這當(dāng)然不是我們想要的結(jié)果。 解決辦法就是,我們?cè)诙x定時(shí)器的時(shí)候,定義一個(gè)定時(shí)器變量,每次點(diǎn)擊按鈕的時(shí)候,利用clearInterval先把所有的定時(shí)器清除掉,再開始新定時(shí)器,這樣就能保證定時(shí)器的正常工作。