之前經常寫運動函式,要寫好多好多,後來想辦法封裝起來。(運動緩衝)。
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...