gpt4 book ai didi

javascript - document.ontouchmove 和 iOS 5 上的滚动

转载 作者:IT王子 更新时间:2023-10-29 03:02:21 26 4
gpt4 key购买 nike

iOS 5 为 JavaScript/Web 应用程序带来了许多美好的东西。其中之一是改进的滚动。如果你添加

-webkit-overflow-scroll:touch;

对于 textarea 元素的样式,用一根手指滚动会很好地工作。

但是有一个问题。为防止整个屏幕滚动,建议web应用添加这行代码:

document.ontouchmove = function(e) {e.preventDefault()};

但是,这会禁用新的滚动。

有没有人有好的方法允许在文本区域内进行新的滚动,但不允许整个表单滚动?

最佳答案

Update Per Alvaro's comment, this solution may no longer work as of iOS 11.3.

您应该能够通过选择是否调用 preventDefault 来允许滚动。例如,

document.ontouchmove = function(e) {
var target = e.currentTarget;
while(target) {
if(checkIfElementShouldScroll(target))
return;
target = target.parentNode;
}

e.preventDefault();
};

或者,这可以通过阻止事件到达文档级别来实现。

elementYouWantToScroll.ontouchmove = function(e) {
e.stopPropagation();
};

编辑 对于以后阅读的任何人来说,备选答案确实有效并且更容易。

关于javascript - document.ontouchmove 和 iOS 5 上的滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7798201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com