彈出層完美禁止頁面滾動

2021-09-16 23:37:31 字數 535 閱讀 3915

頁面中經常會遇到彈出層的部件,當彈出層啟用時覆蓋整個頁面,且背景部分不能滾動。實現起來有以下要點:

以下是實踐:

codepen

為了讓徹底禁止滾動,還可以在mousewheeltouchmove事件(分別對應pc和移動端)中呼叫preventdefault()方法:

function forbidscroll(e)
需要注意的是:chrome預設將touchmove事件視為passive,目的是提高使用者體驗,讓處理一般事件時頁面一樣可以滾動,所以addeventlistener的第三個引數需設定為:

以物件導向的方式實現的結果:

codenpen

使用es6再次重構:

codenpen

原文:

移動端彈出層滾動時禁止body滾動

相信很多寫移動端的朋友會遇到這個問題,我也遇到了,之後就辛辛苦苦的在網上找解決辦法,下面我大概提一下我在網上看到的幾種辦法,行不行的通呢?本人就親測了下。本人學的還不是太深,如果有什麼不對的地方或者有好的解決辦法,也請告知。測試結果 chrome手機模擬器還真可以,but到了我的安卓手機上,撲街了 ...

Vue 彈出層時 禁止頁面滑動

上 滑動限制 stop document.body.style.overflow hidden document.addeventlistener touchmove mo,false 禁止頁面滑動 取消滑動限制 move document.body.style.overflow 出現滾動條 doc...

禁止蒙層底部頁面跟隨滾動

彈窗是一種常見的互動方式,而蒙層是彈窗必不可少的元素,用於隔斷頁面與彈窗區塊,暫時阻斷頁面的互動。但是,在蒙層元素中滑動的時候,滑到內容的盡頭時,再繼續滑動,蒙層底部的頁面會開始滾動,顯然這不是我們想要的效果,因此需要阻止這種行為。那麼,如何阻止呢?請看以下分析 overflow hidden he...