第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么向右移動(dòng)時(shí)是向上取整,然后向左移動(dòng)是向下取整?

為什么向右移動(dòng)時(shí)是向上取整,然后向左移動(dòng)是向下取整?

正在回答

3 回答

比如移動(dòng)到的目標(biāo)值是300px,通過(guò)300減去當(dāng)前的坐標(biāo)0,再除以20,結(jié)果是15,div以15的速度向右移動(dòng),這是第一次定時(shí)器執(zhí)行的結(jié)果。30毫秒后再執(zhí)行一次,目標(biāo)移動(dòng)到了15,通過(guò)300減去當(dāng)前坐標(biāo)15結(jié)果是285,285除以20結(jié)果的14.25,這樣一次次運(yùn)算下來(lái),速度越來(lái)越小,比如速度是15、14.25、12.73、7.2。。。。這樣的。

由于數(shù)值設(shè)置的原因,div移動(dòng)到一定px后,進(jìn)行相減再除20的運(yùn)算后會(huì)出現(xiàn)小數(shù),比如0.75,比如這時(shí)div移動(dòng)到了290,程序里寫(xiě)到div的left=oDiv.offsetLeft+speed+'px',那么div的left就是290.75px,而瀏覽器是不允許出現(xiàn)小數(shù)的,會(huì)把0.75去掉,那么div的left就成了290,下次執(zhí)行時(shí)div的left是290,算出來(lái)速度還是0.75,瀏覽器又省略了小數(shù),結(jié)果就是div停在了290px,到不了目標(biāo)點(diǎn)300。

為了解決這個(gè)問(wèn)題,Math.ceil就派上用場(chǎng)了,它會(huì)把0.75向上取整為1,這樣div就又可以向右移動(dòng)1px了,這時(shí)里目標(biāo)點(diǎn)很近了,就以1的速度慢慢到達(dá)300,然后停止定時(shí)器。
同理,向左移動(dòng),計(jì)算出來(lái)的速度會(huì)是負(fù)值比如-0.75,就用Math.floor把速度向下取整為-1,這樣,就避免了卡在某個(gè)像素點(diǎn)不動(dòng)的問(wèn)題。
Math.floor還是ceil這些運(yùn)算的目的不是要把speed取到0,而是要讓瀏覽器可以繼續(xù)運(yùn)算下去,然后用我們的if條件判斷,等于itarget了就結(jié)束運(yùn)動(dòng)。

3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

DOMOHAHA 提問(wèn)者

非常感謝!講的非常清楚
2016-02-22 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_風(fēng)_54

請(qǐng)問(wèn),瀏覽器會(huì)忽略小數(shù)的話為什么例子里面會(huì)出現(xiàn)190.5px呢
2016-03-13 回復(fù) 有任何疑惑可以回復(fù)我~
#3

qq_風(fēng)_54 回復(fù) 慕容6759333

非常感謝,這個(gè)問(wèn)題找了好久沒(méi)找到答案,再次謝謝
2016-03-13 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

不是還是負(fù)的嗎?offsetLeft

0 回復(fù) 有任何疑惑可以回復(fù)我~

因?yàn)橄蛴乙苿?dòng)offsetLeft為正值,如果向下取整就會(huì)大于目標(biāo)值,不符合條件,向左同理

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

DOMOHAHA 提問(wèn)者

不是還是負(fù)的嗎?offsetLeft
2016-02-17 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
JS動(dòng)畫(huà)效果
  • 參與學(xué)習(xí)       113920    人
  • 解答問(wèn)題       1502    個(gè)

通過(guò)本課程JS動(dòng)畫(huà)的學(xué)習(xí),從簡(jiǎn)單動(dòng)畫(huà)開(kāi)始,逐步深入各種動(dòng)畫(huà)框架封裝

進(jìn)入課程

為什么向右移動(dòng)時(shí)是向上取整,然后向左移動(dòng)是向下取整?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)