Vue出現(xiàn)彈出層時禁止底部頁面跟隨滑動
背景:最近在寫一個vue項目,當出現(xiàn)彈出層時,發(fā)現(xiàn)底部頁面跟隨滾動,但是產(chǎn)品不想要這種效果,于是找各種資料,發(fā)現(xiàn)很多說法,但是試了試,發(fā)現(xiàn)有的根本就不行,比如說有人提出用vue中提供的@touchmove.prevent方法來解決,但是我試了沒起作用,或者@touchmove.prevent.stop也不起作用。下面是幾種可以解決問題的方式,僅供參考:
1.在有彈出框的頁面中,加上以下方法,彈出框出現(xiàn)時調(diào)用禁止?jié)L動方法stopScroll(),彈出框去掉是調(diào)取允許滾動方法canScroll()即可,代碼如下:
methods : { ? ?//禁止?jié)L動 ? ?stopScroll(){ ? ? ? ? var mo=function(e){e.preventDefault();}; ? ? ? ? document.body.style.overflow='hidden'; ? ? ? ? document.addEventListener("touchmove",mo,false);//禁止頁面滑動 ? ? }, ? ? /***取消滑動限制***/ ? ? canScroll(){ ? ? ? ? var mo=function(e){e.preventDefault();}; ? ? ? ? document.body.style.overflow='';//出現(xiàn)滾動條 ? ? ? ? document.removeEventListener("touchmove",mo,false); ? ? } }
2.在全局js即main.js中,設置全局函數(shù),在使用到的頁面分別調(diào)用即可,代碼如下:
//彈出框禁止滑動 Vue.prototype.stopScroll = function () { var mo = function (e) { e.preventDefault() } document.body.style.overflow = 'hidden' document.addEventListener('touchmove', mo, false)// 禁止頁面滑動 } //彈出框可以滑動 Vue.prototype.canScroll = function () { var mo = function (e) { e.preventDefault() } document.body.style.overflow = ''// 出現(xiàn)滾動條 document.removeEventListener('touchmove', mo, false) }
具體頁面的調(diào)用方法如下:
//當需要禁止彈出框底部內(nèi)容滑動時調(diào)用: this.stopScroll() //當需要頁面恢復滑動功能時調(diào)用: this.canScroll()
注:以上方法適用于vue項目的移動端,如果是PC,等我寫到繼續(xù)完善。
到此這篇關于Vue出現(xiàn)彈出層時禁止底部頁面跟隨滑動的文章就介紹到這了,更多相關Vue 彈出層禁止底部滑動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue實現(xiàn)頁面跳轉和參數(shù)傳遞的兩種方式
這篇文章主要介紹了vue頁面跳轉和參數(shù)傳遞的兩種方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09element ui 表格動態(tài)列顯示空白bug 修復方法
今天小編就為大家分享一篇element ui 表格動態(tài)列顯示空白bug 修復方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue 修改 data 數(shù)據(jù)問題并實時顯示操作
這篇文章主要介紹了vue 修改 data 數(shù)據(jù)問題并實時顯示操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09