0

重複の可能性:
JQuery .each() 後方

私はこのコードを使用して各divを表示しています->これは遅延とアニメーションで:

$.fn.slideDelay = function(){
    var delay = 0;
    return this.each(function(){
        $(this).delay(delay).animate({
            opacity: 1,
            top: 0
        }, 2000);
        delay += 1000;
    });
};

これまでのところうまくいきます...私が得た唯一の問題は、最初のインデックスではなく最後のインデックスから始める必要があることです。つまり、最後の div が最初にアニメーション化され、次に beforelast というように最初の div までアニメーション化されます。

4

4 に答える 4

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

デモ: http://jsfiddle.net/q4cGP/

于 2012-10-12T09:58:12.897 に答える
1

コレクションを逆にすることができます...

collection = Array.prototype.reverse.call(collection);

jsFiddle .

于 2012-10-12T09:58:18.680 に答える
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);
    });
};
于 2012-10-12T10:00:35.763 に答える