1

私がやろうとしているのは、コンテナ内のすべての画像をフェードアウトし、#next1の画像を#activeに置き換えてから、すべての画像を再びフェードインすることです。

これが私のコードです:

$('.logo').fadeOut('slow', function() {
    $('#active>img').replaceWith( $('#next1>img') );
}).fadeIn('slow', function() {});

これは動作しません。私は自分が空の#activeを見ていることに気づきました

しかし、これは;

$('.logo').fadeOut('slow', function() {}).fadeIn('slow', function() {});
$('#active>img').replaceWith( $('#next1>img') );

置き換えはうまくいきますが、私がやろうとしているアニメーションはうまくいきません。

chromeとieの両方で同じ結果が得られます。

4

2 に答える 2

5

ここでの私の提案は、jQueryのpromise/doneメソッドを調べることです。ここでの例として、次のようなことができます。

$('.logo').fadeOut('slow').promise().done(function(logo) {
    $('#active>img').replaceWith($('#next1>img'));
    $(logo).fadeIn('slow');
});

jQueryの約束-http://api.jquery.com/promise/

于 2011-10-24T01:31:54.840 に答える
1

試す:

$('.logo').fadeOut('slow', function() {
    $('#active>img').replaceWith( $('#next1>img') );
    $(this).fadeIn('slow');
});

達成したいことがフェードアウトし、.logo非表示の状態でコンテンツを置き換え、ロゴが置き換えられた後にフェードインすることを想定しています。

于 2011-10-24T01:27:49.960 に答える