iOS Web应用程序禁用偏移滚动

时间:2011-07-06 14:32:26

标签: ios events web-applications scroll

如何禁用我的webapp的偏移滚动?

我的意思是深灰色区域 http://i.stack.imgur.com/a3Rt4.png

Disable scrolling in an iPhone web application? 我试过这个,但它一直没有用,它只在有时工作然后突然停止,我可以再次滚动。

4 个答案:

答案 0 :(得分:12)

document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });

有效,但要确保身体有100%的屏幕高度

答案 1 :(得分:3)

这会完全禁用所有触摸移动事件。

<script type="text/javascript">
    function blockMove() {
       event.preventDefault() ;
}
</script>

<body ontouchmove="blockMove()">

它将屏幕冻结到位,让它更具原生感。但也禁用任何可滚动区域。如果您想保留可滚动区域并仍然删除顶部和底部的橡皮筋效果,请参阅此处:http://cubiq.org/iscroll

答案 2 :(得分:0)

最重要的是,有很多方法可以实现这一目标,但没有一种方法可以记录。他们目前都依赖于搜索您UIWebView的子视图并修改其属性 - 所有这些子视图都没有记录,因此您的结果可能会有所不同。这当然不是一种理想的做事方式,而且你发现结果可以变化多端。如果您可以获取Web视图中包含的滚动视图(同样,未记录),您可以禁用偏移滚动/弹跳 - 此链接可能有用:

http://blog.andrewpaulsimmons.com/2010/02/controlling-uiscrollview-in-uiwebview.html

iOS 5有一个正式的解决方案,但你需要在devforums.apple.com上询问或阅读新的文档,因为iOS 5相关的所有内容仍然没有透露,这里无法真正讨论

答案 3 :(得分:0)

我写了这个解决方案,允许可滚动区域,但防止身体在可见时滚动

https://stackoverflow.com/a/18922984/2009533