【问题标题】:iOS Web app disable offset scrollingiOS Web 应用禁用偏移滚动
【发布时间】: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


    【解决方案1】:
    document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });
    

    可以,但要确保 body 有 100% 的屏幕高度

    【讨论】:

    • 很棒的解决方案,但如果您的身高超出手机的可见边缘,这将是一场灾难。它不会让你垂直或水平滚动。
    【解决方案2】:

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

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

    它将您的屏幕冻结在适当的位置,使其具有更原生的感觉。但也禁用任何可滚动区域。如果您想保留可滚动区域并仍然移除顶部和底部的橡皮筋效果,请参见此处:http://cubiq.org/iscroll

    【讨论】:

      【解决方案3】:

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

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

      iOS 5 对此有官方修复,但您需要在 devforums.apple.com 上询问或阅读新文档,因为与 iOS 5 相关的所有内容仍处于保密状态,无法在此处真正讨论.

      【讨论】:

      • 但那是一个 Objective-C 解决方案,对吧?如果我没记错的话,sencha 在他们的演示中以某种方式在没有 Objective-c 的情况下做到了。
      • 我不知道为什么这个答案被否决了。您可以搜索 UIWebView 的子视图这一事实虽然回想起来很明显,但现在仍然是我从 StackOverflow 获得的最有价值的知识之一。
      【解决方案4】:

      我编写了这个解决方案,允许可滚动区域但阻止正文在可见时滚动

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-16
        • 2011-02-22
        • 1970-01-01
        • 2015-06-25
        • 2013-04-08
        • 1970-01-01
        相关资源
        最近更新 更多