最贊回答 / hellf
跟css中的{margin:0;padding:0;} 沒有關系,你的代碼中,判斷offsetLeft 的條件改為: if(odiv.offsetLeft>=0) ?它就停下來了 ,因為在不斷移動的過程中,不一定有0這個值還有一個問題,進入startMove()時, 需要先清除一下定時器,目的是保證同時只有一個定時器在運行,你的代碼還給你,就改了兩個地方:<!DOCTYPE html><html><head><title>動畫</title>...
2018-03-23
最新回答 / 慕絲2053625
你好,我也遇到了這個問題。正如老師所講的那樣,一定是有屬性在到達自己的位置的時候,立刻觸發了清除定時器,導致其他的屬性雖然還沒有到達target,就被終止了運行。當你再次用鼠標指向的時候,定時器只會被觸發一次,for循環一遍,就遇到opacity屬性已經變成1,因此目標寬度只被遍歷1次,增長1,所以需要移入移出4次,這個情況將會在你把目標寬度修改成201時相當明顯。
2018-03-13
最贊回答 / 伴山客
終于想通了,還是flag的問題。大家注意,var flag =true;這句話一定一定要放在for-in外面理解如下:首先for-in雖然使得看起來是同步進行,但實際還是你定義的運動1,運動2,運動3?順序操作。當放在外面的時候,三個運動是修改一個flag,有一個沒滿足都是false。而當flag定義放在循環里的時候,每一個運動的每一次操作,都會重置flag為true。模擬一下:假定速度為1.首先第一圈。寬是false,然運動,達到目標。高是false,運動,仍未達到。透明度是false,運動,仍未達到。...
2017-12-20