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