我在一个数组中有大量的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()
的时间来开始最后一个动画。
希望你明白我的观点。干杯
答案 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
});
}
}
我们的想法是在数组中写入所有淡入淡出持续时间,然后从中获取最大值以便稍后使用它。这对你有帮助吗?