为了账号安全,请及时绑定邮箱和手机立即绑定

两个变量的位置问题

<script type="text/javascript">
            window.onload=function(){
                var Odiv=document.getElementById("box");
                Odiv.onmouseover=function(){
                    starMove(100);
                }
                Odiv.onmouseout=function(){
                    starMove(30);
                }
            }
            var alpha=30;
            var timer=null;
            function starMove(iTager){
                var Odiv=document.getElementById("box");
                clearInterval(timer);
                timer=setInterval(function(){
                    var speed=0;
                    if(alpha>iTager){
                        speed=-10;
                    }
                    else{
                        speed=10;
                    }
                    if(alpha==iTager){
                        clearInterval(timer);
                    }
                    else{
                        alpha+=speed;
                        Odiv.style.filter='alpha(opacity:'+alpha+')';
                        Odiv.style.opacity=alpha/100;
                    }
                },30)
            }
        </script>

在这个代码中如果我将 var alpha=30;  var timer=null;这两句放入在starMove()函数中,就不能实现课程中的效果,为什么?只能这样写吗?

正在回答

2 回答

因为每一次的循环调用都初始化了它的值  使其无法叠加

0 回复 有任何疑惑可以回复我~
#1

街角疯 提问者

非常感谢!
2017-06-13 回复 有任何疑惑可以回复我~

因为每次执行starMove()函数时 var alpha=30;  var timer=null  都是初始值,导致之前执行后的数值无法使用,就像运行一次。 var alpha=40,当你写在函数里面 var alpha=30,导致 var alpha=30而不是40

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

两个变量的位置问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信