javascript - 关于JS完美运动框架(适用CSS2)里一个问题,假设所有值都到目标点的疑问
天蓬老师
天蓬老师 2017-04-10 16:20:57
[JavaScript讨论组]

关于完美运动框架中

先假设所有值都到目标点

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还会执行吗?还是什么都不做?

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
怪我咯

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

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

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

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号