4
var slideWidth = $('#carousel #slideContainer .slide').width();
var slidePos = (($('ul#carousel_nav li').index(this)) * slideWidth);
slidePos = Math.abs(slidePos) * -1;

$('#carousel #slideContainer .slide .slideContents').stop();
$('#carousel #slideContainer').stop();

    $('#carousel #slideContainer .slide .slideContents').fadeOut( 500, function() 
    {
        $('#carousel #slideContainer').animate({ left: slidePos }, 1000, function() 
        {
            $('#carousel #slideContainer .slide .slideContents').fadeIn( 500 );
        });
    });

一連のアニメーション/コールバックを持つ jQuery スクローラーを構築します。ボタンをクリックするdiv '#carousel #slideContainer .slide .slideContentsと、フェードアウトし、そのコンテナdiv '#carousel #slideContainer .slide .slideContentsが n ピクセル (slidePos) 移動します。

アニメーション コールバックを実行すると、常に前のアニメーションの最後に起動するとは限らず、シーケンス全体がバラバラになります?!

4

1 に答える 1

1

ピタジが言ったことがうまくいくように私には見えます

var slideWidth = $('#carousel #slideContainer .slide').width();
var slidePos = (($('ul#carousel_nav li').index(this)) * slideWidth);
slidePos = Math.abs(slidePos) * -1;

$('#carousel #slideContainer .slide .slideContents').stop(true);
$('#carousel #slideContainer').stop(true);

$('#carousel #slideContainer .slide .slideContents').fadeOut( 500, function() 
{
    $('#carousel #slideContainer').animate({ left: slidePos }, 1000, function() 
    {
        $('#carousel #slideContainer .slide .slideContents').fadeIn( 500 );
    });
});
于 2013-04-04T20:54:54.660 に答える