原生JS的緩衝運動

2021-09-13 03:24:24 字數 1139 閱讀 5266

原生js實現緩衝運動

js中的緩衝運動和摩擦運動很相似,只不過區別在於緩衝運動越接近目標點速度越慢,抵達目標點的時候速度為0,停止運動。 其實現過程和摩擦運動相似,其區別在於,緩衝運動的初始速度為0,而且在運動過程中,緩衝速度一直是變化的,而且這個變化是受距離的減小影響的。越接近目標點,速度越低。 速度=距離/時間,在這裡的時間並不是乙個真實的時間而是自己設定的乙個係數。距離是等於預定的距離減去元素的 offsetleft 實現過程如下:

type=

"button"

value=

"動起來"

id="btn"

/>

id="div1"

>

我們將距離設定為500,係數設定為6,那麼就可以得到乙個緩衝運動。但同時我們也發現了乙個問題: 元素執行到接近500的時候,而這個left並沒有達到500,而是在498.333地方就停住了,這是為什麼呢? 我們可以通過「console.log( odiv.offsetleft + 『 : 『 + ispeed );」這段**,可以看出最後幾項運動資料: 當odiv.offsetleft的為492的時候,style.left的距離為493.3333333,這個時候那麼odiv.offsetleft為493.因為在css解析和js解析中我們介紹過, js解析是不能有小數的,,是進行四捨五入的方法取值。但是當odiv.offsetleft執行到498的時候,這個時候style.left的值為498.3333333,在 odiv.offsetleft看來還是498,而不會再往前進一位。因此就停止在498.333的位置了。如果要想去掉這個小數,而且後面有小於1的速度,那 麼我們要採用向上取整的方法來將速度變為整數,這樣在最後逐漸加1的方式達到500的目標點。 對速度進行向上取整,  ispeed =math.ceil(ispeed) 因此最後的**是:

type=

"button"

value=

"動起來"

id="btn"

/>

id="div1"

>

以上就是緩衝運動實現的原理及案例。其實並不複雜,主要是要理清其中的原理即可。

JS緩衝運動

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

JS緩衝運動

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

js緩衝運動

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