js實(shí)現(xiàn)緩沖運(yùn)動(dòng)效果的方法
本文實(shí)例講述了js實(shí)現(xiàn)緩沖運(yùn)動(dòng)效果的方法。分享給大家供大家參考。具體分析如下:
該實(shí)例可實(shí)現(xiàn)一開始速度很快,然后慢下來,直到停止的效果。
要點(diǎn):
var speed = (target-box.offsetLeft)/8;
目標(biāo)點(diǎn)減去元素的當(dāng)前位置的值除以8,因?yàn)閛ffsetleft的值是一直在變大,所以速度的值也是一直的變小
speed = speed>0?Math.ceil(speed):Math.floor(speed);
正向速度的時(shí)候向上取整,反向速度的時(shí)候向下取整
代碼:
<!DOCTYPE html> <html> <head> <meta charset="gb2312" /> <title>無標(biāo)題文檔</title> <style> <!-- body{margin:0; padding:0; font:12px/1.5 arial;} #box{width:100px; height:100px; position:absolute; background:#06c; left:0;} --> </style> <script> <!-- window.onload = function(){ var box = document.getElementById("box"); var btn = document.getElementById("btn"); var timer=null; btn.onclick = function(){ startrun(300); } function startrun(target){ clearInterval(timer); timer = setInterval(function(){ var speed = (target-box.offsetLeft)/8; speed = speed>0?Math.ceil(speed):Math.floor(speed); if(box.offsetLeft == target){ clearInterval(timer); }else{ box.style.left = box.offsetLeft+speed+"px"; } document.getElementById('abc').innerHTML+=box.offsetLeft+','+speed+'<br>'; },30); } } //--> </script> </head> <body> <input id="btn" type="submit" value="向右運(yùn)動(dòng)"> <div id="box"> </div> <br> <textarea id="abc" cols="50" rows="10" style="margin-top:130px"></textarea> </body> </html>
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
uniapp中獲取dom元素的方法及更改dom元素顏色踩坑記錄
最近學(xué)到了一個(gè)比較好用的框架uni-app,可以做六端適配,學(xué)習(xí)一下,下面這篇文章主要給大家介紹了關(guān)于uniapp中獲取dom元素的方法及更改dom元素顏色踩坑記錄的相關(guān)資料,需要的朋友可以參考下2023-03-03自適應(yīng)高度框架 ----屬個(gè)人收藏內(nèi)容
自適應(yīng)高度框架 ----屬個(gè)人收藏內(nèi)容...2007-01-01關(guān)于JAVASCRIPT urldecode URL解碼的問題
JS要實(shí)現(xiàn)單純的編碼解碼輕而易舉,escape、unescape就搞定,但是遇到不是完整的URL轉(zhuǎn)碼,就沒辦法了2012-01-01GoJs中導(dǎo)出圖片或者SVG實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了GoJs中導(dǎo)出圖片或者SVG實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05詳解JavaScript正則表達(dá)式之分組匹配及反向引用
這篇文章主要介紹了詳解JavaScript正則表達(dá)式之分組匹配及反向引用 的相關(guān)資料,需要的朋友可以參考下2016-03-03