猿问

js动画中的this

 下拉菜单动画js部分代码 :      

var aLi=document.getElementsByTagName('li');

for(var i=0; i<aLi.length; i++)

{

 aLi[i].onmouseover=function()

 {

         var oSubNav=this.getElementsByTagName('ul')[0];

         var This=oSubNav;

            clearInterval(This.time);

            This.time=setInterval(function()

            {

                    This.style.height=This.offsetHeight+16+"px";

                    if(This.offsetHeight>=120)

                    {clearInterval(This.time);}

alert("动画里this:"+This.offsetHeight);

alert("动画里oSubNav:"+oSubNav.offsetHeight);

            },30)

     }

 代码中的变量oSubNav为什么要重新赋值给变量This?

我在动画效果函数中试了下,能成功调用oSubNAv,它的当前高度属性值也与This一样。

然而在函数中直接用oSubNav.style.height=oSubNav.offsetHeight+16+"px";为什么不产生动画?



艾零
浏览 2043回答 3
3回答
随时随地看视频慕课网APP
我要回答