可能重复:
JQuery .each() backwards
我使用此代码显示每个div - >这延迟一个动画:
$.fn.slideDelay = function(){
var delay = 0;
return this.each(function(){
$(this).delay(delay).animate({
opacity: 1,
top: 0
}, 2000);
delay += 1000;
});
};
到目前为止运作良好...我得到的唯一问题是我需要从最后一个索引开始而不是第一个索引。这意味着最后一个div首先获得动画,然后是前一个,直到第一个为止。
答案 0 :(得分:1)
理论上,以下内容应该有效:
$.fn.slideDelay = function() {
var len = this.length,
delay = (len - 1) * 1000;
return this.each(function() {
$(this).delay(delay).animate({
opacity: 1,
top: 0
}, 2000);
delay -= 1000;
});
};
答案 1 :(得分:1)
答案 2 :(得分:1)
只需从jQuery对象中检索数组并将其反转:
var items = jQuery(this).get();
items.reverse();
jQuery.each(items, function() {.....
答案 3 :(得分:0)
使用如下函数映射延迟:
$.fn.slideDelay = function(){
var max = this.length - 1;
return this.each(function(i){
$(this).delay((max - i) * 1000).animate({
opacity: 1,
top: 0
}, 2000);
});
};