1.flag要放在setInterval回調函數(shù)外面聲明并初始化為false
2.在setInterval回調函數(shù)開頭判斷flag,false表示動畫沒有執(zhí)行完,true表示動畫執(zhí)行完畢需要關閉定時器
3.如果動畫沒有執(zhí)行完,則在for..in..循環(huán)外將flag置為true,并在循環(huán)中分別判斷每個動畫是否完畢,完畢則不做任何動作,未完畢則執(zhí)行動畫并將flag置為false
2.在setInterval回調函數(shù)開頭判斷flag,false表示動畫沒有執(zhí)行完,true表示動畫執(zhí)行完畢需要關閉定時器
3.如果動畫沒有執(zhí)行完,則在for..in..循環(huán)外將flag置為true,并在循環(huán)中分別判斷每個動畫是否完畢,完畢則不做任何動作,未完畢則執(zhí)行動畫并將flag置為false
2018-01-03
1判斷界限的時候如果是==的話,假如運動速度不是整數(shù)或者換成不能被界限值整除的數(shù),會一直運動下去,造成邊界判斷失效,所以判斷界限時要用>=或者<=,所以mouseover和mouseout的時候兩個函數(shù)不能如此簡單的整合,加上邊界判斷,可能還沒有分開寫簡單;2.考慮到事件冒泡,建議用mouseenter和mouseleave.
2018-01-02
clearInterval(timer)其他的都明白,唯獨這個不明白 剛剛進入startmove()函數(shù),這個的作用和效果不太明白
2017-12-16
function startMove(obj,goal){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var speed=(goal-obj.offsetWidth)/8
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if (goal==obj.offsetWidth) {
clearInterval(obj.timer);}
else{obj.style.width=obj.offsetWidth+speed+'px';}
},30)}
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var speed=(goal-obj.offsetWidth)/8
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if (goal==obj.offsetWidth) {
clearInterval(obj.timer);}
else{obj.style.width=obj.offsetWidth+speed+'px';}
},30)}
2017-11-13