2

私のウェブページに問題があります。前のものがフェードアウトした後にすべてフェードインする必要がある4つのdivがあります。私が使用するコードは次のとおりです。

$('.btn').click(function(){
    $('#box3').delay(5000).fadeOut('slow', function(){
        $('#box4').fadeIn('slow');
    });
});

#box1 > #box2 で動作し、#box2 > #box3 で動作しますが、#box3 > #box4 から移動しようとすると、#box3 がフェードアウトしてから #box4 でフェードインすることがあります。なぜこれを行っているのかわかりません。

ありがとう、

http://jsfiddle.net/chLRa/4/現在動作しています。ときどき 3 から 4 に移動すると、3 と 4 でまだフェードインします。

4

4 に答える 4

3

私は、finish()メソッドを使用してみてください:

$('.btn').click(function(){
    $('#box3').finish().delay(5000).fadeOut('slow', function(){
        $('#box4').fadeIn('slow');
    });
});

あなたの場合、delay() の後にそれを使用する方が良いかもしれません

于 2013-07-23T19:29:42.003 に答える
0

jQuery の公式ドキュメントによると、2 番目のパラメータはコールバックではなく、イージング スタイルです。

http://api.jquery.com/fadeIn/#fadeIn-duration-easing-complete http://api.jquery.com/fadeOut/#fadeOut-duration-easing-complete

$('#el').fadeOut(750,'swing',function(){
    $('#el').fadeIn();
});

したがって、コールバックを 3 番目のパラメーターに移動するだけで、すべてが機能します。

于 2015-04-03T23:26:43.960 に答える
0

これらのメソッドのコールバック バージョンを使用する方がよい場合があります。

$('.btn').click(function(){
    $('#box1').fadeOut('slow', function() {
        $('#box2').fadeIn('slow', function() {
            $('#box2').fadeOut('slow', function() {
                $('#box3').fadeIn('slow', function() {
                    $('#box3').fadeOut('slow', function() {
                        $('#box4').fadeIn('slow', function() {
                            $('#box4').fadeOut('slow');
                        });
                    });
                });
            });
        });
    });
});

jsフィドル

于 2013-07-23T19:52:53.903 に答える