0

ヘイホー、

私は大学でプロジェクトに取り組んでおり、「Hammer.js」を使用したいと考えています。Carousel-Example をダウンロードしましたが、完璧に動作します。

しかし、コードの中央のペインを開始したいのですが、それほど単純ではないと思います。

それは次のようなものです:

http://img203.imageshack.us/img203/6326/schemeas.jpg

そのため、Hammer.js は常にグリーン スクリーンで起動します。しかし、私は黄色から始めるのが好きです。init 関数に右スワイプを 1 つ追加しましたが、ページの読み込み中は見た目が悪く、目標にはなりませんでした ^^

あなたの誰かが私の問題を解決する方法を知っていることを願っています.

4

1 に答える 1

3

電話してみる

carousel.showPane(1);

これにより、2 番目のペインが即座に表示されます。これを一番下の近く、それが言っている場所の直後に置きたいと思うでしょう.

carousel.init();

カルーセル関数内に current_pane と呼ばれる変数があり、デフォルトの 0 (最初のペイン) に設定されているため、冒険したい場合は、そのペインから自動的に開始するようにしてみてください。これを変更しても機能する可能性がありますが、別の場所でより多くのコードが必要になる場合があります。実験!

編集

NULL は正しく、アニメーション化します。アニメーションなしで設定するためのより詳細な方法を次に示します。

どのペインが表示されているかを変更する責任があるメソッドは、アニメーション化するために変数を渡すことができる setContainerOffset メソッドであることがわかりました。以前に showPane(2) を使用するように言いましたが、その後呼び出されました

setContainerOffset(offset, true)

アニメーションが発生する原因。代わりにすべきことは、わずかに異なるバージョンの showPane を作成することです...

this.setPane = function( index ) {
         // between the bounds
        index = Math.max(0, Math.min(index, pane_count-1));
        current_pane = index;

        var offset = -((100/pane_count)*current_pane);
        setContainerOffset(offset, false);
    };

名前と、animation: false で setContainerOffset を呼び出すという事実を除いて、showPane とほとんど同じであることがわかります。これにより、選択したペインがすぐに表示され、次を使用して呼び出すことができます

carousel.setPane(index);

私が行ったことは、これを init 関数に追加して、次のようにすることです。

 this.init = function() {
        setPaneDimensions();
        var c = this;
        $(window).on("load resize orientationchange", function() {
            setPaneDimensions();
            c.setPane(current_pane);
            //updateOffset();
        })
    };

今、あなたは変えることができます

var current_pane = 0;

カルーセルは、初期化時に常にそのペインから開始されます。単純!

于 2013-05-13T10:58:37.487 に答える