禁用仅用于html的弹性滚动,但维护具有溢出的元素:滚动

zan*_*ona 9 javascript css webkit overflow ios5

我正在创建一个全屏的Web应用程序,它将有一些模块/小部件,它们利用新的iOS 5溢出:滚动功能.我想要的是在滚动html/body时禁用那个"弹性"效果(因为它是全屏)但是只对可滚动元素保持这种效果.

平滑我可滚动元素的效果:

html, body { overflow: hidden; }

.scrollable {
    overflow: scroll;
    -webkit-overflow-scrolling: touch;
}
Run Code Online (Sandbox Code Playgroud)

然后是以下禁用触摸滚动效果的脚本:

$(document).bind('touchmove', function (e) { 
    if (e.target === document.documentElement) {
        e.preventDefault(); 
    }
});
Run Code Online (Sandbox Code Playgroud)

虽然这似乎根本不起作用,因为当将元素滚动到最底端或顶部时,它也会滚动documentElement.

有没有办法只为身体html元素禁用该效果?

这是一个很好的例子,说明它如何影响功能:

http://dl.dropbox.com/u/1928164/ios5/index.html

zan*_*ona 0

事实证明,对我来说,唯一有效的解决方案是使用joelambert/ScrollFix脚本,效果非常好,没有任何延迟,事实上,我已经在我的一个项目中使用它了。

您还可以在他的博客文章中查看更多详细信息。对其他回复的用户感到抱歉,但我真的没有得到这些对我有用的答案。