JS運動緩衝的封裝函式

2022-03-10 21:38:44 字數 849 閱讀 4626

之前經常寫運動函式,要寫好多好多,後來想辦法封裝起來。(運動緩衝)。

1/*2

物體多屬性同時運動的函式

3obj:運動的物體

4otarget:物件,屬性名為運動的樣式名,屬性值為樣式運動的終點值

5ratio:速度的係數6*/

7function buffermove(obj, otarget, fn,ratio = 8) else

19//

計算速度,此處可判定方向,如向左或向右,先透明後出現或先出現後透明等

20var ispeed = (otarget[sattr] - icur) /ratio;

21 ispeed = ispeed > 0 ?math.ceil(ispeed) : math.floor(ispeed);

2223

//計算下一次的值

24var inext = icur +ispeed;

2526

//賦值給對應樣式

27if(sattr ==='opacity') else

3334

//清除定時器,當前的位置和終點值是否相等,相等則說明結束

35if(inext !==otarget[sattr]) 38}

39//

如果bbtn的值為true,則說明所有的屬性均已運動完畢,**函式fn()

40if

(bbtn) 45}

46 }, 50);

47 }

以上封裝函式也可以用於單個屬性,多樣式運動,比如:

buffermove(obj,,fn,8);

就這樣。

JS緩衝運動

還是用勻速運動的布局來說,這裡只是改變了速度而已.快取運動的特點 1.距離越遠速度越大 2.逐漸變慢,最後停止 速度 目標值 當前值 縮放係數 需要注意的地方和勻速運動的一樣,只是多了個向上和向下取整的問題,因為當速度降到1以下的時候,物體已經不在運動了,因為根本沒有0.5個畫素的說法.所以需要取整...

JS緩衝運動

原理 乙個div的運動其實就是它與瀏覽器邊框的距離在變動。如果他變化的速率一定,那就是勻速運動 如果變化的速率不一定,那麼就是變速運動。當變化率與距離瀏覽器邊框的距離成比例的話,那麼就可以說是div在做緩衝運動。其實很簡單,就是用乙個定時器 timer 每隔一段時間來改變div距離瀏覽器邊框的距離。...

js緩衝運動

緩衝運動 現象 逐漸變慢,最後停止 原理 距離越遠,速度越大 速度的計算方式 1,速度由距離決定 2,速度 目標值 當前值 縮放係數 說明 速度為正負數時,也決定了物體移動的方向 示例 div緩衝運動 bug 1,div向右運動時,無法到達指定位置 解決 速度向上取整,math.ceil 2,div...