​为什么“宽度200到400,高度100到200,;透明度30到100”的同时运动没问题;而宽度到201 就有问题呢?还没听明白啊?

来源:6-2 完美运动框架

syy138

2016-07-25 15:01

为什么“宽度200到400,高度100到200,;透明度30到100”的同时运动没问题;而宽度到201  就有问题呢?还没听明白啊?求解答

写回答 关注

2回答

  • kx00012kx
    2016-08-12 16:24:50
    已采纳

    我来说说我的理解,不知道是不是完全正确,有不对的地方欢迎大神指出!

    导致问题出现的原因:在时间上宽度首先到达了目标值201,而其他两个属性这时还没有,这时代码运行了清除定时器,所以还没到达目标值的两个属性也停止了运动。

    if(icur==json[attr]){.......},这个if句式里的条件的意思就是:只要有任意一个属性的值(即:icur)等于目标值(即:json[attr]),那么就会执行{........}里面的清除定时器代码,理解这一点,与如何理解 解决问题时为什么要引入变量var flag有非常大的关系。

    解决问题:

    1. 引入变量var flag=true;

    2. if(icur != json[attr]){ flag = false };  //只要有任意一个属性的值不等于目标值,那么定义flag=false;然后继续执行运动代码。

    3. if(flag){..........};  //如果flag=true,即每一个属性的值都等于目标值,那么运行{..........}里面的清除定时器。

    引入变量flag就是为了表达出   每一个属性的值都等于目标值   这个意思。

    syy138

    是的 后面明白了

    2016-08-12 17:11:50

    共 1 条回复 >

  • syy138
    2016-07-25 15:16:20

    因为宽度目标值400,还未达到之前,紧接着运行了第二个目标和第三个目标值;是201时,运行时间短促,直接就被清除了定时器即动作停止,还未来得及同时运行下个动作。不知道这样理解是否正确?

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题