为什么下面函数用到的timer,在上面的函数用不用声明?

来源:4-1 JS多物体动画

萌九家的YuKa酱

2016-09-04 17:23

timer 和alpha 这两个没弄到公共属性时候,老师都给var声明了,但是放到上面的函数中就没声明? 

<script type="text/javascript">

    window.onload=function(){

         var oDiv=document.getElementsByTagName('div');

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

         oDiv[i].timer=null;

         oDiv[i].alpha=30;

         oDiv[i].onmouseover=function(){

         change(this,100);

        };

         oDiv[i].onmouseout=function(){

         change(this,30);

        }

    }

}

/*var alpha=30;*/

     function change(obj,Target){

        clearInterval(obj.timer);

        obj.timer=setInterval(function(){

          var speed=0;

         if(obj.alpha>Target){

            speed=-10;

         }else{

            speed=10;

         }

         if(obj.alpha==Target){

            clearInterval(obj.timer)

         }else{

            obj.alpha+=speed;

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

            obj.style.opacity=obj.alpha/100;

         }


        }, 30)

    }


写回答 关注

1回答

  • 深夜迷妹
    2016-09-05 13:08:50

    下面函数的timer是obj的,而obj是该函数的形参,也就是说下面函数的timer是由参数obj带着的,也就不用声明了,只要obj有timer就可以了

    12只怕有心...

    求教哪本书/材料讲到了相关的知识点?

    2016-09-23 21:40:00

    共 1 条回复 >

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题