是這樣的。因為比較喜歡js,而且js數組也好操作,想用網頁寫一個電梯模擬算法,用到了animate來表現動畫效果。最開始的時候我遇到了這樣的問題。假設電梯從6樓下降到1樓,那么就要生成一個從6到1樓的勻速運動動畫,這個動畫是一個線程。但是如果下降到了4樓的時候,突然3樓有人要上電梯,那就必須得在3樓停下來。如果在這個線程之后直接調用去3樓的線程,兩個線程不會互相覆蓋,而是會互相累加,它會先到1樓后上3樓,但如果在接收到3樓請求的時候立刻調用stop(true)方法停止動畫并且重新生成一個動畫的話,在停止的那里會卡頓一下,這樣看起來好像電梯故障,不是想要的效果。經過一番查資料,我找到了step這個方法,先貼一下網上的資料代碼。借用,無意冒犯這個step方法相當于把一個動畫分解成無數小段,每執行一個小段就會調用一遍。并且提供了修改fx.now和fx.end的值的機會,我以為這就是我要的方法。只要接收到3樓請求的時候,修改fx.end為3樓的位置就行了。緊接著新的問題就出來了。fx.now雖然也是fx的一個屬性,但這個屬性不是死的,經過我查詢JQuery源碼,發現它是根據start、end以及移動位置百分比來計算的,一旦修改了end,now值就會改變,造成電梯突然往上抽搐一下接著下降的效果。很抱歉啰嗦了這么多,只是為了把問題說得更清楚。有沒有dalao對這個方法比較熟悉,能不能幫忙想個解決辦法,或者做這個電梯小程序還有沒有別的表現方式?謝謝dalao
Jquery animate中的step方法問題
阿晨1998
2018-10-10 20:19:14