【发布时间】:2011-09-29 16:46:14
【问题描述】:
如何禁用我的 web 应用的偏移滚动?
我的意思是深灰色区域 http://i.stack.imgur.com/a3Rt4.png
Disable scrolling in an iPhone web application? 我已经尝试过了,但它并不是一直都有效,它只是有时有效,然后突然停止,我可以再次滚动。
【问题讨论】:
标签: ios events web-applications scroll
如何禁用我的 web 应用的偏移滚动?
我的意思是深灰色区域 http://i.stack.imgur.com/a3Rt4.png
Disable scrolling in an iPhone web application? 我已经尝试过了,但它并不是一直都有效,它只是有时有效,然后突然停止,我可以再次滚动。
【问题讨论】:
标签: ios events web-applications scroll
document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });
可以,但要确保 body 有 100% 的屏幕高度
【讨论】:
这将完全禁用所有触摸移动事件。
<script type="text/javascript">
function blockMove() {
event.preventDefault() ;
}
</script>
<body ontouchmove="blockMove()">
它将您的屏幕冻结在适当的位置,使其具有更原生的感觉。但也禁用任何可滚动区域。如果您想保留可滚动区域并仍然移除顶部和底部的橡皮筋效果,请参见此处:http://cubiq.org/iscroll。
【讨论】:
最重要的是,有多种方法可以实现这一点,但没有一种记录在案。他们目前都依赖于搜索您的UIWebView 的子视图并修改它们的属性 - 所有这些子视图都没有记录,因此您的结果可能会有所不同。这当然不是一种理想的做事方式,而且正如您所发现的那样,结果可能会有所不同。如果您可以获取包含在 Web 视图中的滚动视图(同样,未记录),您可以禁用偏移滚动/弹跳 - 此链接可能会有所帮助:
http://blog.andrewpaulsimmons.com/2010/02/controlling-uiscrollview-in-uiwebview.html
iOS 5 对此有官方修复,但您需要在 devforums.apple.com 上询问或阅读新文档,因为与 iOS 5 相关的所有内容仍处于保密状态,无法在此处真正讨论.
【讨论】:
我编写了这个解决方案,允许可滚动区域但阻止正文在可见时滚动
【讨论】: