1.flag要放在setInterval回調(diào)函數(shù)外面聲明并初始化為false
2.在setInterval回調(diào)函數(shù)開頭判斷flag,false表示動(dòng)畫沒有執(zhí)行完,true表示動(dòng)畫執(zhí)行完畢需要關(guān)閉定時(shí)器
3.如果動(dòng)畫沒有執(zhí)行完,則在for..in..循環(huán)外將flag置為true,并在循環(huán)中分別判斷每個(gè)動(dòng)畫是否完畢,完畢則不做任何動(dòng)作,未完畢則執(zhí)行動(dòng)畫并將flag置為false
2.在setInterval回調(diào)函數(shù)開頭判斷flag,false表示動(dòng)畫沒有執(zhí)行完,true表示動(dòng)畫執(zhí)行完畢需要關(guān)閉定時(shí)器
3.如果動(dòng)畫沒有執(zhí)行完,則在for..in..循環(huán)外將flag置為true,并在循環(huán)中分別判斷每個(gè)動(dòng)畫是否完畢,完畢則不做任何動(dòng)作,未完畢則執(zhí)行動(dòng)畫并將flag置為false
2018-01-03
還有就是speed的賦值部分可以拿到定時(shí)器外面,計(jì)算一次就好了,放在定時(shí)器里面那次數(shù)該多多少呀
2018-01-03
1判斷界限的時(shí)候如果是==的話,假如運(yùn)動(dòng)速度不是整數(shù)或者換成不能被界限值整除的數(shù),會(huì)一直運(yùn)動(dòng)下去,造成邊界判斷失效,所以判斷界限時(shí)要用>=或者<=,所以mouseover和mouseout的時(shí)候兩個(gè)函數(shù)不能如此簡單的整合,加上邊界判斷,可能還沒有分開寫簡單;2.考慮到事件冒泡,建議用mouseenter和mouseleave.
2018-01-02
最贊回答 / 伴山客
終于想通了,還是flag的問題。大家注意,var flag =true;這句話一定一定要放在for-in外面理解如下:首先for-in雖然使得看起來是同步進(jìn)行,但實(shí)際還是你定義的運(yùn)動(dòng)1,運(yùn)動(dòng)2,運(yùn)動(dòng)3?順序操作。當(dāng)放在外面的時(shí)候,三個(gè)運(yùn)動(dòng)是修改一個(gè)flag,有一個(gè)沒滿足都是false。而當(dāng)flag定義放在循環(huán)里的時(shí)候,每一個(gè)運(yùn)動(dòng)的每一次操作,都會(huì)重置flag為true。模擬一下:假定速度為1.首先第一圈。寬是false,然運(yùn)動(dòng),達(dá)到目標(biāo)。高是false,運(yùn)動(dòng),仍未達(dá)到。透明度是false,運(yùn)動(dòng),仍未達(dá)到。...
2017-12-20
最新回答 / 暉哥hg
can not set property onmouseover of null看錯(cuò)誤,應(yīng)該是未找到元素。嘗試把js放在頁面最底部再獲取div元素。
2017-12-18
clearInterval(timer)其他的都明白,唯獨(dú)這個(gè)不明白 剛剛進(jìn)入startmove()函數(shù),這個(gè)的作用和效果不太明白
2017-12-16