1

BxSliderを使用してスライダーを作成しています。一度に3枚のスライドを表示するように設定しました。正常に動作します。現在、スライドの現在数と総数を計算して、最初と最後のスライドを取得しようとしています。現在、私は合計10枚のスライドを持っています-そしてその数は変わる可能性があります-(一度に3枚表示される)ので、私の機能は動作しません。明らかに6つまたは9つのスライドがある場合に機能します。

最初のスライドと最後のスライドを取得することに興味があるのは、最後のリンクと右のリンクをそれぞれ非表示にするためです。ここで私のフィドルを参照してください。私の機能はこれです:

function LastSlide() {
            var total = slider.getSlideCount();
            var current = slider.getCurrentSlide() + 1;
            var lastslide = total / current;
            if (current == lastslide) { // Last slide
               //run stuff
            }
        }

-しかし、lastslideが小数を取得すると、悪いことが起こり始めます。誰かがこれを解決する方法を思いついたのですか?bxSliderのドキュメントについては、最初のリンクを参照してください。

4

1 に答える 1

2

LastSlide のことを正確に行っている理由がわかりません-除算は必要な正しい関数ではないため、関数からその変数を削除するだけでよいと思います。

また、フィドルは「Go Left」を表示しません。これは、現在が lastslide に等しい場合にのみ表示されるためです。

これは、機能を機能させるための非常に単純なフィドルです: http://jsfiddle.net/CKxg9/14/

また、名前はかなり紛らわしいです。つまり、CURRENT スライドは 1 (3 DIVS)、2 (6 DIVS) をカウントしており、合計スライドは 10 (私の場合は 14 を使用) であり、これはスライドではなく DIVS である必要があります。あなたが使用できる最後のスライドのもの:

var total = Math.ceil(slider.getSlideCount()/3);

これは、10 個の DIVS があり、一度に 3 枚のスライドを作成したい場合、4 枚のスライド (1-3,4-6,7-9,10) があることを意味します。

if (current == total) {
    $('#right').hide();
} else {
    $('#right').show();
}

これは2番目の方法を使用したフィドルです: http://jsfiddle.net/CKxg9/15/ これは何もしていないので、もちろんlastslideを削除できます..

$('#left').show() を現在の > 1 のどこかで初期化する必要があります...

これは問題の解決に役立つはずです-願っています..

于 2013-01-02T13:37:08.627 に答える