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端則不存在這個問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM