iPhone浏览器:在拖动html输入字段时禁用页面滚动

iPhone Browser: Disable page scroll while dragging html input field

本文关键字:滚动 字段 输入 浏览器 拖动 html iPhone      更新时间:2023-09-26

我制作了一个HTML页面。此页面比Iphone屏幕小。假设这是登录页面。页面包含文本输入字段。

我禁用了以这种方式滚动页面:

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

该代码阻止滚动,但当我点击输入字段并拖动时,页面无论如何都在滚动。

有没有一种方法可以在iPhone上完全禁用HTML中的页面滚动?

用户总是可以通过触摸状态栏滚动到顶部,因此防止滚动的最佳方法是保持滚动。将window.scrollTo(x, y)放在setInterval中,每当用户滚动页面时,您都可以将其滚动回正确的位置。

当用户点击输入字段时,Mobile Safari可能会向上滚动一点,以避免键盘覆盖输入字段。确保滚动行为不会使键盘覆盖输入字段。

它对我有效

$("body").bind("touchmove", function(e) {
   e.preventDefault();
});