仿照老师的代码做了js的运动效果,可为啥停不下来呢,求帮忙

来源:2-1 JS速度动画

weibo_殇雨916_0

2015-11-28 08:50

<!doctype html>

<html>

 <head>

  <meta charset="UTF-8">

  <meta name="Generator" content="EditPlus®">

  <meta name="Author" content="">

  <meta name="Keywords" content="">

  <meta name="Description" content="">

  <title>Document</title>

  <style type="text/css">

#div1{width:200px;height:150px;left:-200px;position:relative;background-color:red;}

#share{width:50px;height:100px;position:absolute;background-color:blue;left:200px;}

  </style>

  <script>

window.onload=function(){

var oDiv=document.getElementById("div1");

oDiv.onmouseover=function(){

startMove();

}

}

var timer=null;

function startMove(){

var oDiv=document.getElementById("div1");

timer=setInterval(function(){

if(oDiv.offsetLeft==0)

{clearInterval(timer);}

else

{oDiv.style.left=oDiv.offsetLeft+10+'px';}

},30)

}

  </script>

 </head>

 <body>

 <div id="div1">

 <span id="share">分享</span>

 </div>

 </body>

</html>


写回答 关注

3回答

  • qq_语默_2
    2015-12-03 16:22:39

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>无标题文档</title>

    <style>

    div{width:200px;

        height:200px;

        background:red;

    position:relative;

    left:-200px;

    top:0;

    }

    #div1 span{

    width:20px;

    height:50px;

    background:blue;

    position:absolute;

    left:200px;

    top:75px;

    }

    </style>

    <script>

       window.onload=function(){

     var oDiv=document.getElementById("div1");

    oDiv.onmouseover=function(){

                             startMove();

                              }

    var timer=null;                         }   

    function startMove(){

    var oDiv=document.getElementById("div1");

    if(oDiv.offsetLeft==500){cleaInterval(timer)}

    else{

    setInterval(function(){oDiv.style.left= oDiv.offsetLeft+1+"px";},300)


    }

       


    }

    </script>


    </head>


    <body>

    <div id="div1"><span id="share">分享</span></div>


    </body>

    </html>


  • 江湖書生
    2015-11-28 10:57:26

    本人菜鸟一枚,只是发表个人见解,大神勿喷

  • 江湖書生
    2015-11-28 10:56:31

    http://img.mukewang.com/565916d30001f9e104840333.jpg

    这句代码有误,从你鼠标触发动画效果的那一刻起,oDiv.offsetLeft就不可能等于0,所以就会一直执行else里边的语句。你不妨把语句里的数值改为100、500、800……,看看具体效果,你就明白了

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题