关于完美运动框架中
先假设所有值都到目标点
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)除外。
主要是看步进吧,延时器是一个,各个属性值的步进是不同的,所以到达边界的时间是一定的