可不可以帮我看一下哪里出错了,运行不出来​

来源:2-1 JS速度动画

慕用7235999

2017-07-24 16:09

window.onload=function(){
 var oDiv=document.getElementById('div1');

 oDiv.onmouseover=function(){
  startMove();
 }

}
var timer=null;
function startMove(){
 timer=setInterval(function()
 {
  if(oDiv.offsetLeft==0)
  {
   clearInterval(timer);
  }
  oDiv.style.left=oDiv.offsetLeft+10+'px';
 },300)
}

可不可以帮我看一下哪里出错了,运行不出来

写回答 关注

2回答

  • 丶痞子绅士
    2017-09-23 22:08:55

    仔细看,你的oDiv定义在onload事件里的匿名方法里,既然在方法里,怎么会是全局变量呢?

    应该把oDiv放在最外面定义,这才是全局变量,这样子onload事件里的匿名方法和startMove()方法都能拿到ODiv的值。

    或者也可以把startMove()加一个参数,把oDiv传进去,然后在startMove()里拿这个oDiv也是可以的。

    而且你没有加else,如果不加else的话,在left值达到0之后,进入if语句块清理了计时器,还是会执行完if语句块后的这行代码的,不加else的话,你会发现你的oDiv左边多了10px的空隙。

  • 慕用7235999
    2017-07-24 16:17:20

    在函数startMove中,并未定义oDiv,还有没加else

    钱钱钱钱钱钱...

    oDiv 不是在外面定义了吗?是全局变量诶,在内部函数里面应该可以直接拿来用吧?

    2017-09-06 14:35:46

    共 1 条回复 >

JS动画效果

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

113923 学习 · 1443 问题

查看课程

相似问题