1

HTML のブロックを含む ajax 呼び出しからいくつかの HTML が返されました。既存のブロックをフェードアウトし、新しいブロックをフェードインして、順番に (一度に 1 つずつ) 発生させたいと考えています。現在、それはすべて同時に起こっています。

コールバックが行われている間、 $.each 関数は残りの html ブロッ​​クを通過し続けるため、それらはすべて同時にフェードインおよびフェードアウトします。次のブロックに移動する前に、各 html ブロッ​​クをフェードインおよびフェードアウトする方法はありますか?

コード

   var $newestResults = $('#newest .pcVideomaincontainer:lt(' + data.d.Newest.ChannelsReturned + ')');
            $newestResults.fadeOut('slow'), function () { remove() };
            $.each($newestResults, function (index, value) {
                $(this).animate({
                    opacity: 0
                }, 1000,
                function () {
                    $(this).remove();
                    $('#pcContentHolder_newest').prepend(data.d.MostFamous.HtmlChannelSegments[index]).hide().fadeIn('slow');
                });
            });
4

2 に答える 2

3

現在のインデックスに基づいて遅延を追加します。

        $.each($newestResults, function (index, value) {
            $(this).delay(index*1000).animate({
                opacity: 0
            }, 1000,
            function () {
                $(this).remove();
                $('#pcContentHolder_newest').prepend(data.d.MostFamous.HtmlChannelSegments[index]).hide().fadeIn('slow');
            });
        });

私はそれをテストしていませんが、すでに遅延している最初のアニメーションメソッドのコールバックにあるため、fadeIn も遅延する必要があります。

于 2012-06-21T20:43:13.200 に答える
0

同様の遅延で関数の周りにタイムアウトを使用できますか?

window.setTimeout(your_function,1000)

于 2012-06-21T20:44:48.880 に答える