0

嘿嘿,

我正在我的大学做一个项目,我想使用“Hammer.js”。我已经下载了 Carousel-Example,它非常适合我。

但是我想开始我的代码的中间窗格,我认为它并不那么简单。

是这样的:

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

所以 Hammer.js 总是以绿屏开始。但我喜欢从黄色开始。我已经在 init 函数中添加了一次滑动,但是当页面加载时它看起来很糟糕并且不能成为目标^^

我希望你们中的任何人都知道如何解决我的问题。

4

1 回答 1

3

试着打电话

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 几乎相同,除了名称和它调用 setContainerOffset 并带有动画:false 的事实。这将立即显示您选择的窗格,并且可以使用

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 回答