課程
/前端開發(fā)
/JavaScript
/JS動畫效果
麻煩老師看下
2016-03-29
源自:JS動畫效果 3-1
正在回答
因為px是沒有小數(shù)的,-190.5瀏覽器會默認為-190,把小數(shù)省略掉,這是speed等于-200-(-190)/20為-0.5,然后又算出oDiv.style.left=-190+(-0.5)=-190.5,然后瀏覽器又會省略掉小數(shù),使當(dāng)前值為-190,然后又計算出speed為-0.5,陷入一個死循環(huán),無法繼續(xù)執(zhí)行下去。
我不是老師,斗膽幫你解答一下。
在speed不取整的情況下,根據(jù)speed=(iTarget-oDiv.offsetLeft)/20和oDiv.style.left=oDiv.offsetLeft+speed這兩句來分析。因為left和offsetLeft是沒有小數(shù)點的,所以speed是多出來的小數(shù)即-0.5,當(dāng)iTarget=0時,speed=-0.5,根據(jù)speed=(iTarget-oDiv.offsetLeft)/20推算出offsetLeft=-190。根據(jù)oDiv.style.left=oDiv.offsetLeft+speed推算出left=-190.5
舉報
通過本課程JS動畫的學(xué)習(xí),從簡單動畫開始,逐步深入各種動畫框架封裝
2 回答還是不明白為什么在沒加判斷語句之前,為什么他會停在-190.5的地方?不繼續(xù)計算了嗎?求指教?。。?/p>
2 回答如果瀏覽器不支持小數(shù)像素,var speed = (iTarget - oDiv.offsetLeft)/20;當(dāng)speed等于20以下的時候,oDiv.style.left = oDiv.offsetLeft + speed +'px';這里的speed就小于1了。瀏覽器應(yīng)該在20px左右的時候就停止了,為什么是在10px左右的時候停止呢
1 回答為什么會停到8.55和190.5
4 回答為什么速度值只能是目標(biāo)值的倍數(shù) 如果不是則就停不下來了
1 回答if(aa==iTarget){ //為什么這里用aa>=iTarget或是<=實現(xiàn)不了呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-05-18
因為px是沒有小數(shù)的,-190.5瀏覽器會默認為-190,把小數(shù)省略掉,這是speed等于-200-(-190)/20為-0.5,然后又算出oDiv.style.left=-190+(-0.5)=-190.5,然后瀏覽器又會省略掉小數(shù),使當(dāng)前值為-190,然后又計算出speed為-0.5,陷入一個死循環(huán),無法繼續(xù)執(zhí)行下去。
2016-03-29
我不是老師,斗膽幫你解答一下。
在speed不取整的情況下,根據(jù)speed=(iTarget-oDiv.offsetLeft)/20和oDiv.style.left=oDiv.offsetLeft+speed這兩句來分析。因為left和offsetLeft是沒有小數(shù)點的,所以speed是多出來的小數(shù)即-0.5,當(dāng)iTarget=0時,speed=-0.5,根據(jù)speed=(iTarget-oDiv.offsetLeft)/20推算出offsetLeft=-190。根據(jù)oDiv.style.left=oDiv.offsetLeft+speed推算出left=-190.5