使用Javascript模仿原生滚动

时间:2011-07-24 12:54:56

标签: javascript jquery iphone ios webkit

可以使用哪些Javascript库来模仿IOS设备上的本机滚动行为(mainky iPad)即使是基于jQuery的库也没关系。

在你说之前,我知道最常见的是iScroll https://github.com/cubiq/iscroll 但我想知道更多...

请尽可能多地列出。谢谢你。

3 个答案:

答案 0 :(得分:4)

所以IOS 5 webkit现在具有原生滚动功能。但它仍然存在一些问题,特别是如果你想要一个“app”的感觉。

使用此CSS可激活本机滚动。

.scrollme {
   -webkit-overflow-scrolling: touch;
   overflow:auto;
}

问题是,如果你在div已经位于其容器的“顶部”时向下拖动,你最终会得到整个html文档滚动弹跳,当你不想要它时可以暴露浏览器chrome至。但是,有一个纯CSS的解决方法(没有javascript)。您可以使用一组3个嵌套的div。将外部2设置为“滚动:触摸”,您可以获得相当“原生”的感觉。

此处的示例代码:https://gist.github.com/1372229

除了“position:fixed”属性外,这对于简化事情还有很长的路要走。

答案 1 :(得分:3)

Joe Hewitt的

Scrollability是最近开发的一个实现,可以很好地模仿iOS设备上的原生滚动。然而,他自己承认“正在进行中”,并没有为生产使用做好准备。

此外,iOS 5将通过-webkit-overflow-scrolling: touch CSS属性和值提供直接的本机滚动支持。在元素上设置overflow: scroll将使滚动的行为类似于在本机应用程序中滚动面板:一根手指,原生风格的动量和行为。基本上所有需要大量JavaScript的东西都可以用两个CSS属性替换。

缺点是,由于它仅在iOS测试版中,你仍然必须使用脚本作为后备,直到iOS 5是主流(不仅仅是发布),Android采用它(并且释放成为主流)等等。我们还需要一段时间的后备。

您可以在FunctionSourcethis blog获取更多详细信息。同样,这在今天没有用,但在接下来的6到12个月内有用(对于其他平台可能更长)。

答案 2 :(得分:1)

以下是Touch和Touch-Scroll Javascript库的有趣列表:

https://github.com/bebraw/jswiki/wiki/Touch