qq_Dw_3
2017-03-09 20:04
我在纳闷 flag根本没有变为ture,怎么会停止的定时器呢? 怎么回事?我看了好多遍 都没看明白呢 ?在哪提问啊 我找不到呢?
如果把flag放在计时器内的话 把width 和height的参数调换一下就清楚看到效果了,一开始把width设为500,然后你把height设为201试试, 这时候按F12看看应该是没有问题的,但是你把width设为201,height设为500在运行调试,出问题了。
楼上不对吧,flag怎么能放在计时器里,如果放在计时器里跟没有定义flag这个参数是一样的,同样会出现bug
flag=true应该定义在setInterval里面,
思路是这样的:
1.每次复用都将flag设为true,
2.如果有未达到目标的这时将flag覆盖为false;
3.在结束前判断flag为true 则清除
虽然width到达了目标,但是opacity未达到目标 flag 被覆盖为 false,不能进入clearInterval的判断
只有当所有的目标达到时,if(icurr != json[attr])的判断无法进入 flag 不能被设置为false,这时候flag为开始定义的true,随后clearInterval将被执行;
function Move(obj,json,fn){
clearInterval(obj.timer)
obj.timer = setInterval(function(){
var flag = true;//放在这里
for(var arr in json){
JS动画效果
113925 学习 · 1443 问题
相似问题