鼠标移出后div继续向右移动怎么回事

来源:2-1 JS速度动画

慕丝7289332

2016-08-03 12:08

var timer=null;
window.onload=function () {
   var oDiv=document.getElementById('div1');
   oDiv.onmouseover=function () {
       startMove(0);
   }
   oDiv.onmouseout=function () {
       startMove(-200);
   }
}
function startMove(iTarget) {
   clearInterval(timer);
   var oDiv=document.getElementById('div1');


   timer=setInterval(function () {
       var speed=0;
       if (oDiv.style.left>iTarget){
           speed=-10;
       }else {
           speed=10;
       }
       if (oDiv.offsetLeft==iTarget){
           clearInterval(timer);
       }else{
           oDiv.style.left=oDiv.offsetLeft+speed+'px';
       }
   },30)
}

写回答 关注

2回答

  • 慕函数9642432
    2016-08-03 16:45:11

        function moveS(iTarget){
            var div1=document.getElementById('div1');
            clearInterval(timer);
            timer=setInterval(function(){
                var speed;
                if(div1.offsetLeft>iTarget){
                    speed=-10;
                }else{
                    speed=10;
                }
                if(div1.offsetLeft==iTarget ){
                    clearInterval(timer);
                }else{
                    div1.style.left=div1.offsetLeft + speed + 'px';
                }

            },30)
        }

  • RecallGY
    2016-08-03 13:19:30

    当他完全右移出来后 你没有判断

    加一句

    if(oDiv.offsetLeft==0) {

    clearInterval(timer);}

    让计时器停止工作就行了


    慕丝7289...

    知道哪里错了 if (oDiv.style.left>iTarget)这个判断条件错了,应该是if(oDiv.offsetLeft>iTarget)

    2016-08-03 17:27:19

    共 1 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题