課程
/前端開發(fā)
/JavaScript
/JS動畫效果
speed > 0 ? speed = Math.ceil(speed) : speed = Math.floor(speed);
為什么大于0 要向上取整,小于0 要向下取整?
2016-08-20
源自:JS動畫效果 3-1
正在回答
因為之前定時器的循環(huán)里,因為最后結果都是差零點幾,結果最后導致多執(zhí)行一次來滿足target,然后最后運動的距離就超出了,負的向下取整,正的向上取就是為了彌補上除法除出來差的那零點幾,然后就不會多執(zhí)行那一次循環(huán),就避免了超出和未運動到的情況
Gady啊 提問者
暮女神
當speed負值時=-0.9、-0.8、-0.7...時,向上取整時speed值=0,此后的速度一直為0,所以要向下取整-0.9、-0.8...向下取整等于-1;同理當speed為正值時0.9、0.8、0.7...向上取=1,向下取=0; ??
至于為什么要取整,是因為offsetWidth等像素值最小單元為1px,有小數(shù)存在時會四舍五入,當接近目標值時speed值小于0.5時,此時的obj.offsetWidth小數(shù)位<0.5時就永遠地進不了位(如196.4四舍五入為196);
舉報
通過本課程JS動畫的學習,從簡單動畫開始,逐步深入各種動畫框架封裝
2 回答向上取整和向下取整
2 回答為什么speed大于0向上取整,小于0向下取整?
2 回答speed=speed>0?Math.ceil(speed):Math.floor(speed); 向上取整沒有用
3 回答為什么向右移動時是向上取整,然后向左移動是向下取整?
1 回答為什么使用的時向上取整,得到的確實向下取整?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2016-08-20
因為之前定時器的循環(huán)里,因為最后結果都是差零點幾,結果最后導致多執(zhí)行一次來滿足target,然后最后運動的距離就超出了,負的向下取整,正的向上取就是為了彌補上除法除出來差的那零點幾,然后就不會多執(zhí)行那一次循環(huán),就避免了超出和未運動到的情況
2016-09-10
當speed負值時=-0.9、-0.8、-0.7...時,向上取整時speed值=0,此后的速度一直為0,所以要向下取整-0.9、-0.8...向下取整等于-1;同理當speed為正值時0.9、0.8、0.7...向上取=1,向下取=0; ??
至于為什么要取整,是因為offsetWidth等像素值最小單元為1px,有小數(shù)存在時會四舍五入,當接近目標值時speed值小于0.5時,此時的obj.offsetWidth小數(shù)位<0.5時就永遠地進不了位(如196.4四舍五入為196);