2013-05-13 75 views
0

Heyho,Hammer.js旋转木马开始窗格

我'在我的大学,我倒是一个项目喜欢用“Hammer.js”。 我已经下载了Carousel-Example,它对我来说非常合适。

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

It's是这样的:

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

所以Hammer.js与绿屏总是启动。但我喜欢从黄色开始。 我已经添加了一个向右滑动到init函数,但它看起来很可怕,当页面加载,并不能成为目标^^

我希望你们任何人都有一个想法如何解决我的问题。

+2

您将需要提供问题的演示示例。 – andlrc 2013-05-13 09:59:01

+0

@NULL他们确实没有?他们从hammer.js主页下载了轮播示例。 – roarster 2013-05-13 11:03:08

回答

3

尝试调用

carousel.showPane(1); 

这将立即显示在第二个窗格。你会想把它放在底部,就在它说的地方之后。

carousel.init(); 

如果你喜欢冒险的感觉,你可以尝试,并使其与窗格自动开始有被设置为默认值为0(第一片材)的轮播功能称为current_pane里面的变量。改变这可能也会起作用,但可能需要更多代码。实验!

编辑

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的事实:假的。这将立即显示您所选择的窗格中,并且可以使用被称为

carousel.setPane(index); 

我所做的是已将此添加到初始化函数,以便它看起来像这样:

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

现在,您可以更改

var current_pane = 0; 

无论您想要什么,轮播将始终在该窗格初始化时启动!简单!

+0

这个添加的是容器的'animate'类。认为这将导致幻灯片动画。 – andlrc 2013-05-13 11:12:31

+0

@NULL我已更新我的回答,以反映 – roarster 2013-05-13 15:25:20

+0

谢谢你的解决方案。它完美的作品:) – lrecknagel 2013-05-14 10:58:20