0

Javascript で円形の画像カルーセルを作成しています。

0 位置のスライドが現在選択されており、[前へ] が押された場合、最後の位置のスライドにジャンプするという意味で、円形である必要があります。最後の位置のスライドが現在選択されている場合、「次へ」を押すと、0 の位置のスライドにジャンプします。

別のプログラムがスライド全体を処理しますが、次のことができます。

  • シフトの現在位置を検出slide.current- 最初の位置は 0
  • スライドの総数を検出します(ページをリロードするまで変化しません)slide.items.length
  • スライド プログラムが独自の補完機能を完了した後で、独自の関数nextSlideと関数を起動するpreviousSlide
  • slideTo()スライド APIを使用して、現在選択されているスライドとポインターの位置を手動で変更します
  • ページの読み込み後に最初に表示されるスライドが、アイテムの総数 (3 ~ n) を 2 で割って切り上げたものであることが自動的に認識されます。

ここに私が持っているものがあります:

var currentSlide = slide.current;
var lastSlide = 'undefined';

function nextSlide(){
    currentSlide = slide.current;

    if(lastSlide == 'undefined'){
        lastSlide = currentSlide - 1;
    } else if (lastSlide == 0) {
        lastSlide = currentSlide;
    } else{
        lastSlide = lastSlide + 1;
    }

    if (lastSlide == currentSlide) {
        slide.activate(0);
    }
}

function previousSlide(){
    currentSlide = slide.current;

    if(lastSlide == 'undefined'){
        lastSlide = currentSlide + 1;
    } else if (lastSlide == slide.items.length - 1) {
        lastSlide = currentSlide;
    } else{
        lastSlide = lastSlide - 1;
    }

    if (lastSlide == currentSlide) {
        slide.activate(sly.items.length - 1);
    }
}

previousSlide呼び出しと呼び出しを混在させると、これは失敗しますnextSlidelastSlide変数が不正になります。

4

1 に答える 1

0
  • lastSlide の値を「未定義」と宣言する必要はありません。値を割り当てずに変数を宣言すると、デフォルトで未定義になります。

  • スライドがオブジェクトとして機能することを考えると、nextSlide と previousSlide がスタンドアロン関数ではなくメソッドとして機能する方が理にかなっています。

  • lastSlide の値は currentSlide の値に依存する必要があります。

  • 将来の型の混乱を避けるために、厳密な比較演算子を使用する必要があります。(=== の代わりに ==)

于 2013-10-15T22:57:44.520 に答える