封装一个匀速运动的方法

//匀速运动的封装

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

//第一个参数为对象,第二个参数是运动的目标值,第三个参为匀速的时间间隔

clearInterval(obj.timer);

//清除上一次的定时器

obj.timer = setInterval(function(){

//设置定时器保存对象运动的时间

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

//这里设置它的运动距离以及方向,最后一次运动时,每次移动的距离 =目标值-他的实际运动值,

//如果每次移动的距离大于0,说明物体往右走,此时,移动距离取5,相反的时候取-5

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

//在这里取绝对值控制它运动的距离,只要小于5就可以继续运动,这样就不会让目标值只可以取5的参数

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

//当他的 物体运动的距离 = 他的目标距离时,即到达目的地

clearInterval(timer);

//清除本次定时器,停止此次匀速运动

}else{

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

//物体的距离 = 实际运动的值 + 每次移动的距离;程序执行一次此处,物体便移动一次

}

},speedTime)

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容