【问题标题】:How to stop entire web app from scrolling in iOS when users attempts to scroll in non scrollable part?当用户尝试在不可滚动部分滚动时,如何阻止整个 Web 应用程序在 iOS 中滚动?
【发布时间】:2012-10-04 06:31:36
【问题描述】:

我为 IOS 创建了一个 Web 应用程序,当用户通过 Safari 将其添加到他们的主屏幕时,如果他们试图用手指在应用程序的一部分中向上或向下滚动,而您无法滚动,它会滚动整个应用程序向上或向下然后弹回原位(就像您滚动到网页底部然后继续尝试继续滚动一样)。

有没有办法防止像这样向上或向下滚动?将overflow-y属性设置为body,document和window设置为hidden并不能解决问题。

【问题讨论】:

    标签: ios css html iphone-web-app


    【解决方案1】:

    使用 JavaScript 监听 touchmove 事件并使用preventDefault() 取消默认行为。这将使您无法从这些元素中“橡皮筋”页面。对于您不希望用户能够拖动的元素,请尝试这样的操作:

    noScroll = document.getElementById("cant-touch-this");
    noScroll.addEventListener("touchmove", function(e) {
        e.preventDefault();
    });
    

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      相关资源
      最近更新 更多