【发布时间】:2018-09-05 02:55:37
【问题描述】:
我们试图在我们的 iOS 网络应用程序上滚动一个元素,同时阻止窗口本身滚动。我们正在捕获窗口上的touchmove 事件,以编程方式滚动元素并(试图)通过在事件上调用preventDefault 来阻止窗口本身滚动。
很遗憾,这在 Mobile Safari 中不起作用。窗口继续在我们的元素下方滚动。这个问题听起来与https://bugs.webkit.org/show_bug.cgi?id=163207 中描述的 Webkit 错误一模一样,但据说这个问题已在 iOS 10.3 中修复,而我正在运行 11.3。
捕获touchforcestart 并调用preventDefault 似乎确实阻止了窗口的滚动,但我们在touchstart 中调用它,这似乎“为时已晚”,因为窗口仍在滚动。只有在下次调用 touchstart 时才会阻止滚动。
对正在发生的事情有任何想法吗?我们很困惑,因为这显然是一个错误,但似乎已经在一段时间前修复了。
【问题讨论】:
标签: ios scroll mobile-safari preventdefault touchmove