【问题标题】: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();
});