js運動
在CSS3中,我們可以通過新增的過渡效果<code>[transition]</code>來實現運動效果,當然也可以通過js來模擬出來。
勻速運動
與之前的拖拽不同,拖拽是要跟蹤滑鼠的位置。而js運動效果主要通過定時器<code>[setInterval]</code>每次增加一個距離來模擬運動效果,但相同的是它們都需要開啟定位<code>[position]</code>屬性,改變<code>[top]</code>值、以及<code>[left]</code>值進行移動。
oDiv.onclick = function() {
clearInterval(timer); //每次點選按鈕,清除前面的定時器
timer = setInterval(function() {
if (oDiv.offsetLeft > 600) {
speed = -speed;
}
if (oDiv.offsetLeft == 600) {
clearInterval(timer);
} else {
oDiv.style.left = oDiv.offsetLeft + speed + 'px';
}
}, 30);
}
定時器有開啟,就必須要關閉,否則影響的就是記憶體。
<code>[clearInterval(timer)]//每次點選按鈕,清除前面的定時器</code>如果沒有這一句,在移動過程中的點選會再疊加一次。
上個例子中,我們並未限制它的移動範圍,所以它會移出頁面。
將<code>oDiv.offsetLeft + speed</code>的範圍限制在0到頁面的可視區的寬度;當然這個碰撞的效果還增加的高度的屬性。
在實際的應用中,我們很少用到勻速運動,主要因為它並沒有什麼變化。
緩衝運動
我們可以明顯的感覺到它與勻速運動的區別。越靠近目標,速度越小,直到降至0為止;
將勻速運動中的speed變數賦值為<code>600-oDiv.offsetLeft)/7</code>其中600,就是我們的目標位置,而7就是一個比例。
定點拋物線
主要運用了數學中的公式:
<code>y = ax^2 + bx+c</code>
我們假設x,y都為0;即拋物線在中心點,那麼c就為0:
<code>y = ax^2 + bx</code>
因為在頁面中我們知道x,y的起始位置,以及定點位置;然後自定義一個a<code>拋物線開口大小</code>最後就可以求得b的值;
<code>b=(y-ax^2)/x</code>
最終位移的距離就是:
<code>oDiv1.style.left=current.x + x+'px';
oDiv1.style.top=current.y+(aMath.pow(x,2)+bx)+'px';</code>
實際案例
相關文章
- js動畫 Css提供的運動 js提供的運動JS動畫CSS
- js模擬拋物運動和慣性運動JS
- js隨機運動小球效果JS隨機
- js滑鼠拖動立方體3D運動效果JS3D
- js實現的元素運動程式碼例項JS
- js圓形環繞運動程式碼例項JS
- js運算子JS
- js運算子 “==” 與 “===”JS
- js相等運算子JS
- 原生js實現一個DIV的碰撞反彈運動JS
- js中的運算子JS
- js條件運算子JS
- 巧用JS位運算JS
- JS錯誤記錄 – 右側懸浮框 – 緩衝運動JS
- 運動框架框架
- 移動機器人運動規劃及運動模擬機器人
- JS中的位運算JS
- JS加法運算全解析JS
- js == 運算規則解析JS
- Level 運動智慧眼鏡 可代替運動手環
- 【自動駕駛】運動控制自行車模型運動規律圖解自動駕駛模型圖解
- IT運維之自動化運維運維
- JavaScript運動框架JavaScript框架
- 任意運動框架框架
- css運動背景CSS
- SCUBAJET水上運動噴氣發動機:可實現運動器材電動化
- Sensoria智慧運動服裝:能自動求救讓運動更安心
- JS 中的邏輯運算子JS
- js梯形乘法運算表效果JS
- 程式碼 json 的運用JSON
- 夏天必備的運動裝備,DTOOM海王運動藍芽耳機OOM藍芽
- Aeros運動文胸:透氣性的高科技運動文胸ROS
- OMsignal智慧運動內衣:追蹤穿戴者系列運動指數
- JavaScript 緩衝運動JavaScript
- 專案實戰:Qt球機控制工具(球機運動八個方向以及運動速度,運動指定角度QT
- 用自動化運維工具解放IT運維運維
- 原生JavaScript運動功能系列(四):多物體多值鏈式運動JavaScript
- 仿運動社交軟體 噠噠運動APP系統開發APP