0

ニュースをフェードイン・フェードアウトするニュースボードを作っています。要素がフェードアウトするとコンテンツが削除され、フェードインするとその場所に新しいコンテンツが表示されます。これは機能しますが、タイミングがずれているだけです。古いコンテンツがフェードアウトしたときにのみ表示されるはずの新しいコンテンツが、要素がフェードするときに表示されます。これが完了するまで待つ方法はありますか?

$(document).ready(function() {
    var counter = 0;
    var slides = ['<p>Track All of Your enemys Using The <span>Scout Tool!</span></p>',
                    '<p>Download powerups Using The <span>Pirate Tool!</span></p>',
                    '<p>Gather Badges To Attack others in <span>Raids!</span></p>',
                    '<p>Enjoy Orgainzing Your Profile <span>Join Now!</span></p>'];

    $('#slide-left').click(function() {
        $('#slide').fadeTo('fast', 0);
        $('#slide p').remove();

        if (counter > 0){counter --;}

        $('#slide').append(slides[counter]);
        $('#slide').fadeTo('fast', 1);
    });
    $('#slide-right').click(function() {
        $('#slide').fadeTo('fast', 0);
        $('#slide p').remove();

        if (counter < (slides.length-1)){counter ++;}

        $('#slide').append(slides[counter]);
        $('#slide').fadeTo('fast', 1);

    });

});
4

3 に答える 3

5

fadeToは、コールバック関数である 3 番目の引数を受け入れます。これは、アニメーションが完了すると呼び出されます。したがって、いつでも次のようなことができます:

$('#slide').fadeTo('fast', 1, function() {

    // This part is executed after fade

});
于 2013-05-27T17:26:17.503 に答える
1

できるよ

$('#slide').fadeTo('fast', 0,function(){
     $('#slide p').remove();
     if (counter > 0){counter --;}
     $('#slide').append(slides[counter]).fadeTo('fast', 1);
});
于 2013-05-27T17:25:50.643 に答える
-1
$(document).ready(function() {
    var counter = 0;
    var slides = ['<p>Track All of Your enemys Using The <span>Scout Tool!</span></p>',
                    '<p>Download powerups Using The <span>Pirate Tool!</span></p>',
                    '<p>Gather Badges To Attack others in <span>Raids!</span></p>',
                    '<p>Enjoy Orgainzing Your Profile <span>Join Now!</span></p>'];

    $('#slide-left').click(function() {
        $('#slide').fadeTo('fast', function() {
            $('#slide p').remove();
            if (counter > 0){
                counter --;
            }else{
                if (counter < (slides.length-1)){
                    counter ++;
                }
            }
            $('#slide').append(slides[counter]);
            $('#slide').fadeTo('fast', 1);
        });
    });
});

これが正しいかどうかはわかりませんが、私の5つの送信:

私が助けたことを願っています、

于 2013-05-27T17:27:46.100 に答える