0

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

在最后一个立方体中,我单独制作动画以使用返回函数,我想触发另一个函数:

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()来开始最后一个动画。

希望你明白我的意思。干杯

4

1 回答 1

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
        });
  }
}

这个想法是将所有淡入淡出的持续时间写在一个数组中,并充分利用它以供以后使用。这对你有帮助吗?

于 2013-11-13T17:03:32.857 回答