如何获得最长的动画

时间:2013-11-13 16:48:44

标签: jquery html jquery-animate

我在一个数组中有大量的div,我.fadeIn()是随机的。

在最后一个立方体中,我单独使用返回函数进行动画处理,我想触发另一个函数:

for (var i = 0; i < 800; i++) {
  getCube(i).animate({ opacity: 1}, Math.floor(Math.random()*1000)});
  if (/* next to last cube is done with animation */)
       { getCube(799).animate({ opacity: 1}, 500, function() {
          // some function
        });
  }
}

问题是,如何才能获得最长animate()的时间来开始最后一个动画。

希望你明白我的观点。干杯

1 个答案:

答案 0 :(得分:0)

也许不是最聪明的解决方案,但可能有效:

var durations = [],
    _durations,
    _greatest;

for (var i = 0; i < 800; i++) {
    var duration = Math.floor(Math.random()*1000);
    durations.push(duration);
}

_durations = durations;
_durations.sort(function(a,b){return b-a});
_greatest = _durations[0];

for (var i = 0; i < 800; i++) {
  var _duration = durations[i];
  getCube(i).animate({ opacity: 1}, _duration});
  if (i == 798)
       { getCube(798).stop().animate({ opacity: 1}, _greatest, function() {
          // some function
        });
  }
}

我们的想法是在数组中写入所有淡入淡出持续时间,然后从中获取最大值以便稍后使用它。这对你有帮助吗?