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

老师flag的定义会不会有错,flag变FALSE 就在变不回TRUE了

flag的定义会不会有错  执行一次后flag变成FALSE,之后flag的值就在不改变了呀 怎么可能会去清除定时器

正在回答

7 回答

那个确实写错了,应该把flag写进定时器里

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

weibo_幸福长大了_0 提问者

非常感谢!
2016-05-19 回复 有任何疑惑可以回复我~

falg要放在定时器里面,不然每次重新执行定时器就不会更新为true.( if(flag)要在for循环外面)

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

flag必然会变回true的因为定时器如果不关闭就会无限的重复执行,每次执行后就相当于又给flag赋值成true了

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

以上都是我自己的理解  错误还是正确我也不知道

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

weibo_幸福长大了_0 提问者

不管怎样还是谢谢了
2016-05-19 回复 有任何疑惑可以回复我~

像你这么写 和老师这么写都是一样的。因为都是在函数里面定义的,flag都是局部变量,由于闭包和作用域所以都能读取到这个变量。

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

我的理解  在还没有全部到达 itarget之前,flag始终为false,当所有attr到达itarget时此时需要清除定时器,而清除定时器的条件是flag为true  。(为什么flag能变化是因为有定时器,每30ms就会更新里面的数据。)

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

obj.timer=setInterval(function () {
       var flg =true;  //像这样吗  ?感觉也不对,flag变false后,还是不会再变回true呀?
       for (var attr in json) {
           //获取当前值
           var icur = 0;
           if (attr == 'opacity') {
               icur = Math.round(parseFloat(getStyle(obj, attr)) * 100);
           }
           else {
               icur = parseInt(getStyle(obj, attr));
           }
           //算速度
           var speed = 0;
           speed = (json[attr] - icur) / 8;
           speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
           //检测停止
           if (icur != json[attr]) {
               flg=false;
           }
           if (attr == 'opacity') {
                   //针对IE浏览器
                   obj.style.filter = 'alpha(opacity:' + (icur + speed) + ')';
                   //针对其他
                   obj.style.opacity = (icur + speed) / 100;
               }
               else {
                   obj.style[attr] = icur + speed + 'px';
               }
            }
       if (flg){
           clearInterval(obj.timer);
           if (fn){
               fn()
           }
       }
   },30)
}

像这样吗  ?感觉也不对,flag变false后,还是不会再变回true呀?郁闷呀,这逻辑不对呀

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

那些微笑

这样写是对的,定时器每执行一次都会把flag初始为true,下面判断如果所有动画执行完成,才会清除定时器,执行回调函数!
2016-07-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

老师flag的定义会不会有错,flag变FALSE 就在变不回TRUE了

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