簡體   English   中英

Hammer.js輪播啟動窗格

[英]Hammer.js Carousel Start Pane

嘿嘿

我正在大學里從事一個項目,我想使用“ Hammer.js”。 我已經下載了“輪播示例”,它非常適合我。

但是我想在代碼的中間窗格中啟動,我認為這並不是那么簡單。

是這樣的:

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

因此Hammer.js始終以綠色屏幕開頭。 但是我喜歡從黃色開始。 我已經向init函數添加了一次滑動操作,但是在頁面加載時它看起來很糟糕,不能成為目標^^

希望大家對如何解決我的問題有所了解。

嘗試致電

carousel.showPane(1);

那將立即顯示第二個窗格。 您需要將其放置在底部附近,緊接其位置。

carousel.init();

如果您喜歡冒險,可以嘗試使其自動從該窗格開始,因為Carousel函數內部有一個名為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);
    };

您會發現它與showPane幾乎相同,除了名稱和它使用animation:false調用setContainerOffset的事實。 這將立即顯示您選擇的窗格,可以使用

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;

隨心所欲,輪播會在初始化時始終從該窗格開始! 簡單!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM