其他分享
首页 > 其他分享> > 移动div盒子 原生js

移动div盒子 原生js

作者:互联网

开始
开始

点击第一个按钮移动到400px点击第一个按钮移动到400px

点击第二个按钮移动到800px点击第二个按钮移动到800px

点击第一个按钮移动到400px点击第一个按钮移动到400px
这里需要用到定时器
需要注意的是:
1.元素移动div盒子要脱离文档流,即(position:absolute)
2.通过element.style.left不能获取元素的left,只能设置,要用offsetLeft()来获取
3.最好不用var timeid = setInterval(fn,time)的方式,因为这样每点击一次按钮就会定义一个新的timeid,你会发现移动的盒子逐渐加快速度。好的方式是把timeid变成element的属性,即element.timeid
4.通过判断(目标位置-当前位置)的绝对值和step的绝对值的大小来决定盒子是否直接到达目标值。

my$("bt1").onclick = function(){animation(my$("dv"),400);}
    my$("bt2").onclick = function(){animation(my$("dv"),800);}
    function animation(element,target){
        console.log(element.offsetLeft)
        clearInterval(element.timeid)
        element.timeid = setInterval(function(){
            var current = element.offsetLeft;
            var step = 8;
            step= current<target?step:-step;
            current+=step;
            if(Math.abs(target-current)>Math.abs(step)){
                element.style.left = current +"px";
            }else{
                clearInterval(element.timeid)
                element.style.left = target+"px";
            }
        }, 50);
    }

标签:原生,function,step,element,timeid,div,js,my,left
来源: https://blog.csdn.net/weixin_41865901/article/details/111767683