1

無限にスクロールするはずの基本的なカルーセル/スライダーを書いています。基本的に、コンテナをスライドの幅全体に移動し、最初のスライドを最後に移動してから、コンテナを元に戻そうとしています。

何らかの理由で .first() が最初の要素ではなく 2 番目の要素を移動しています:

$('.half-slider .next').click(function(){
    var slideW = $(this).parent().parent().find('.slide').first().outerWidth();
    $(this).parent().parent().find('.slides').animate({'margin-left': -slideW},function(){
        var firstSlide = $(this).find('.slide').first();
        var lastSlide = $(this).find('.slide').last();
        firstSlide.after(lastSlide);
    });
});

jsfiddle を作成しました: http://jsfiddle.net/BLAaF/2/

*フィドルで「次へ」を選択するだけです。この例では、「prev」はアクティブではありません。

4

1 に答える 1

3
firstSlide.after(lastSlide);

これは のlastSlide後にを置きfirstSlideます。「最初のスライドを最後に移動する」というあなたの声明に基づいて、私はあなたが意味したと思います:

firstSlide.insertAfter(lastSlide);

最後のスライドの後に最初のスライドを配置します。

于 2013-09-13T20:54:42.497 に答える