Gnu*_*fo1 9 scrollview jquery-mobile
基本上与这个问题相同:如何在iPhone上制作无限长的滚动视图?但使用jQuery Mobile而不是客观C.
我正在使用这个插件:http://jquerymobile.com/test/experiments/scrollview/scrollview-direction.html,特别是"Horizontal Scrollview"下的示例.我希望它循环回自身,所以当用户到达最右边时,它将返回到开始,如果它们从开始向左滚动,它将结束.
如果解决方案特别使用scrollview插件,或者不仅仅是它可以产生类似的效果,我不会感到困扰.
更新:我最终做了一个不同的方式,因为移动元素到最后或列表的开头似乎与iPhone上的jQuery Mobile scrollview闪烁.
我所做的是将ul中的所有li元素复制3次,使其长4倍.然后在脚本开始时,将滚动点定位在第三个副本的开头(因此屏幕的最左侧点恰好是列表长度的一半).
然后,只要滚动位置超出第4个副本的开头,只需将滚动位置移回中间位置(偏移其上方的像素数).然后反过来相同,触发它就超出了第二个副本的开始.原因我需要4份副本,所以当你快速向左滚动时它有一点余地,它超出了第二个副本的开始.
所以基本上你想做一些类似于我所做的事情:http://bbh.co.uk?
逻辑非常简单,假设你有7个面板,我做的第一件事就是计算出运动的0点,即7个面板的中心位置,在这种情况下它是第4个,因为我们有左边3,右边3.
通过这个0点,我们可以决定面板将在何处发生滚动,例如用户从左向右滚动2,这意味着我们的0点变为-2,因此我们从右边移动到前面的两个左边,即我们将它们添加到列表中.
来管理它的最简单方法是使用数组,因为我们可以.push(),.pop(),.shift()和.unshift()面板.
一旦我们按顺序排列逻辑,我们将每个面板的CSS位置放置为绝对值,然后根据它在数组中的位置计算其位置,例如面板0将位于0px容器的左侧,面板7将位于panel.width * 7等等.
然后你需要确保容器位于中心,初始0点和繁荣,你有一些无限滚动.