封裝一個勻速運(yùn)動的方法

//勻速運(yùn)動的封裝

function animate(obj,target,speedTime = 20){

//第一個參數(shù)為對象,第二個參數(shù)是運(yùn)動的目標(biāo)值,第三個參為勻速的時間間隔

clearInterval(obj.timer);

//清除上一次的定時器

obj.timer = setInterval(function(){

//設(shè)置定時器保存對象運(yùn)動的時間

var speed = target -obj.offsetLeft > 0 ? 5 : -5;

//這里設(shè)置它的運(yùn)動距離以及方向,最后一次運(yùn)動時,每次移動的距離 =目標(biāo)值-他的實際運(yùn)動值,

//如果每次移動的距離大于0,說明物體往右走,此時,移動距離取5,相反的時候取-5

if(Math.abs(target - obj.offsetLeft) < 5){

//在這里取絕對值控制它運(yùn)動的距離,只要小于5就可以繼續(xù)運(yùn)動,這樣就不會讓目標(biāo)值只可以取5的參數(shù)

obj.style.left = target + "px";

//當(dāng)他的 物體運(yùn)動的距離 = 他的目標(biāo)距離時,即到達(dá)目的地

clearInterval(timer);

//清除本次定時器,停止此次勻速運(yùn)動

}else{

obj.style.left = obj.offsetLeft + speed + "px";

//物體的距離 = 實際運(yùn)動的值 + 每次移動的距離;程序執(zhí)行一次此處,物體便移動一次

}

},speedTime)

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容