问答详情
源自:2-2 JS透明度动画

这行的问题有点大 var oDiv=document.getElementById('div1');

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

为什么吧带标志 // 的这行写在function里就有效 写在外面当成全局变量就无效呢 就显示说没定义?


window.onload=function(){

var oDiv=document.getElementById('div1'); //

oDiv.onmouseover=function(){

startMove(100);

}

oDiv.onmouseout=function(){

startMove(30);

}

}

function startMove(){

var oDiv=document.getElementById('div1'); //

clearInterval(timer);

timer=setInterval(function(iTarget){

if(alpha==iTarget)

{clearInterval(timer);}

else

{

alpha<iTarget?speed=10:speed=-10;

alpha=alpha+speed;

oDiv.style.opacity=alpha/100;

oDiv.style.filter='alpha(opacity:'+alpha+')';

}

},30)

}


提问者:qq_GreenOrRed_0 2016-09-10 20:27

个回答

  • 向死而生3491500
    2016-09-22 16:37:59
    已采纳

    嗯...

  • 向死而生3491500
    2016-09-19 08:06:12

    Html执行代码的格式是重上往下执行,而window.onload函数是页面加载完后执行,所以,当页面加载完后,并不会执行window.onload上面的var oDiv=document.getElementById('div1');这一行代码,只会执行里面的程序代码。。。

  • 差不多菇凉ing
    2016-09-13 09:19:27

    打开浏览器就先直接加载window.onload函数

  • 慕粉_紫色萱依草
    2016-09-10 20:51:33

    如果把这行放到onload里应该是可行的 不用再在function里面定义