js之左右移动的动画的函数封装

function move(ele,end,step){
    //var step = 10
    //先清除定时器,从而防止定时器的叠加
    clearInterval(timer);
    //设置定时器
    //1.获取起点
    var start = parseInt(getStyle(ele,'left'));//1000
    //2.处理步长
    if(end > start){
            step = step
        }
        else if(end < start){
            step = -step;//10 由于我们将step的处理代码放在了定时器中,导致定时器会将step先转换为负数,之后,再进行取负
        }
    timer = setInterval(function(){
        //让div向前走一步
        //3.迈出第一只脚  计算下一步落点
        start += step;//990
        //5.到终点结束
        if(start>=end&&step>0){//当前判断只是用来判断正向移动
            //如果步长为正 表示运动方向为正方向,这时如果下一步位置大于等于终点,才叫到达终点
            start = end;
            clearInterval(timer);
        }else if(start<=end && step<0){
            //如果步长为负,表示运动方向为反方向,这是如果下一步位置小于等于终点,才叫到达终点
            start = end;
            clearInterval(timer);
        }
        //4.迈出第二只脚  定位div
        ele.style.left = start + 'px'
    },20)
}

 

posted @ 2020-03-27 21:38  JackieDYH  阅读(12)  评论(0编辑  收藏  举报  来源