HTML移动端禁止页面滚动

在某些情况下,移动端开发网页不希望用户能够向下滑动页面(因为向下滑动可以看见域名等),所以需要禁止页面滑动,然而有的方法只是禁止当前页面滚动,而不能禁止层级更低的页面滚动,例如最表面的遮罩层能够禁止滑动,但是在遮罩层上面滑动会导致遮罩层下面的页面滚动,发生穿透,在查阅资料之后,得到如下方法:

$("body").css({
  position: "fixed",
  width: "100%"
});
document.body.addEventListener("touchmove", bodyScroll, false);
function bodyScroll(event) {
  event.preventDefault();
}
切不可用以下写法:
document.body.addEventListener("touchmove",
  function bodyScroll(event) {
    event.preventDefault();
  }
  , false
);
使用以上方法后可以禁止页面滚动也可以防止发生穿透事件,但是有一点需要注意的是,这样好像会导致当input输入框聚焦时安卓端由于已经禁止滑动,键盘调起时可能遮住输入框,这是就需要手动监听键盘状态,使页面动态上移核实的距离,出现在可视区域(详细方法下一篇会提到);ios端则不存在这个问题

猜你喜欢

转载自www.cnblogs.com/wadelai/p/11284294.html