js使彈層下面的body禁止?jié)L動
彈窗是一種常見的交互方式,而蒙層是彈窗必不可少的元素,用于隔斷頁面與彈窗區(qū)塊,暫時阻斷頁面的交互。但是,在蒙層元素中滑動的時候,滑到內(nèi)容的盡頭時,再繼續(xù)滑動,蒙層底部的頁面會開始滾動,顯然這不是我們想要的效果,因此需要阻止這種行為。
1.新建utils/modalHelper.js文件
// 解決遮罩層滾動穿透問題,分別在遮罩層彈出后和關(guān)閉前調(diào)用 let _scrollTop class ModalHelper { // popup 顯示時調(diào)用 static afterOpen () { _scrollTop = document.scrollingElement.scrollTop document.body.style.position = 'fixed' document.body.style.top = -_scrollTop + 'px' } // popup 關(guān)閉時調(diào)用 static beforeClose () { document.body.style.position = '' document.body.style.top = '' // 使 scrollTop 恢復(fù)原狀 document.scrollingElement.scrollTop = _scrollTop } } export default ModalHelper
2.main.js中全局引入ModalHelper
import ModalHelper from './utils/modalHelper' Vue.prototype.$modalHelper = ModalHelper
3.vue頁面使用
isPayment1(val) { if (val) { this.$modalHelper.afterOpen(); // 打開禁用 } else { this.$modalHelper.beforeClose(); // 關(guān)閉禁用 } },
4.為避免用戶使用按鍵返回,需在頁面離開時移除禁用即可
beforeRouteLeave (to, from, next) { this.$modalHelper.beforeClose() next() },
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript創(chuàng)建對象的七種經(jīng)典方式分享
JavaScript 創(chuàng)建對象的方式有很多,通過 Object 構(gòu)造函數(shù)或?qū)ο笞置媪康姆绞揭部梢詣?chuàng)建單個對象,顯然這兩種方式會產(chǎn)生大量的重復(fù)代碼,并不適合量產(chǎn)。本文介紹了七種非常經(jīng)典的創(chuàng)建對象的方式,希望對大家有所幫助2022-11-11JS實現(xiàn)表單中checkbox對勾選中增加邊框顯示效果
這篇文章主要介紹了JS實現(xiàn)表單中checkbox對勾選中增加邊框顯示效果,可實現(xiàn)點擊后圖片增加邊框及勾選的功能,非常簡潔實用,需要的朋友可以參考下2015-08-08手寫Spirit防抖函數(shù)underscore和節(jié)流函數(shù)lodash
這篇文章主要介紹了手寫Spirit防抖函數(shù)underscore和節(jié)流函數(shù)lodash,接下來將會帶你們了解下這兩者的區(qū)別,以及我們該如何手寫實現(xiàn)這兩個函數(shù)2022-03-03JS交互點擊WKWebView中的圖片實現(xiàn)預(yù)覽效果
這篇文章主要介紹了JS交互點擊WKWebView中的圖片實現(xiàn)預(yù)覽效果,需要的朋友可以參考下2018-01-01