首页 > 关于JS完美运动框架(适用CSS2)里一个问题,假设所有值都到目标点的疑问

关于JS完美运动框架(适用CSS2)里一个问题,假设所有值都到目标点的疑问

关于完美运动框架中

先假设所有值都到目标点

var bStop = true;

然后在for in Json的时候做判断

if(cur != json[attr])
    bStop = false;
    

最后在for in 循环的最外层做判断

   if(bStop){
    clearInterval(obj.timer); //关闭定时器
    if(fn)fn(); //回调函数
}

如果json中传了2个值,其中1个已经到达指定目标点,另一个还没到达。定时器不会关闭,依旧会执行,那已经到达目标点的值,还会再次调用定时器吗?直到另一个值也到达目标点,才会判断出bStop为true,从而关闭定时器。

问的比较的奇葩感觉。。。我就是想知道如果Json中传2个值,{width:200px height:300px},第一次调用定时器的时候,width和height是同时执行,还是执行完width的在执行height。
如果是同时执行的话,当width到达200px,height还未到达300,此时调用定时器的时候,width还会执行吗?还是什么都不做?

谢谢大神,我已经钻牛角尖了。。。求拉出来!


width到达target之后,定时器没有停止。而是iCur当前值与iTarget目标值相等了,所以他看上去不会变化,但实际上还是在参与计算。

直到所有值都到达iTarget值之后,bStop的值才会等于true,最终停止定时器。

ps: 真正的完美运动框架,并不是这种,而是jQuery中,基于Tween实现的运动框架才是当前效率最高的。
(css3)除外。


主要是看步进吧,延时器是一个,各个属性值的步进是不同的,所以到达边界的时间是一定的

【热门文章】
【热门文章】