我想禁用 iphone 的 touchmove 滚动。已经尝试了我能想到的一切。真是令人沮丧。
$(document).bind('touchmove', function (e) {
e.preventDefault();
});
$('.info-wrapper > *').bind('touchmove', function (e) {
e.stopPropagation()
});
滚动应该像往常一样工作,但是当我单击一个按钮时,会出现一个 div 以透明度覆盖整个屏幕。这个 div 有类信息包装器。因此,所有孩子都应该停止文档上的事件以使其受到影响。但事实并非如此,似乎 info-wrapper 停止了它,但 info-wrapper 中有子项不会禁用滚动。这些是许多类型的元素,h2,span 等。
此外,信息包装器具有溢出:自动;应用,所以这个应该能够像往常一样滚动。
编辑:
好吧,这个似乎几乎可以工作。
$(document).on('touchmove', function (ev) {
if (!$(ev.target).parents().hasClass('info-wrapper')) {
ev.preventDefault();
}
});
还添加到 body css -webkit-overflow-scrolling: touch;
这会阻止底层主体使用 info-wrapper 滚动。