vue2解决uniapp使用uview的u-popup弹出层,遮罩下主页面还可以滑动问题

解决思路就是给body中添加样式,控制其内容溢出裁剪,不滚动,即overflow:hidden
具体步骤:
  1. 新建utils/isScroll.jsVue原型上添加禁止滚动和恢复滚动的方法
js 复制代码
import Vue from "vue";

// 禁止滚动
Vue.prototype.noScroll = function () {
  document.body.style.overflow = "hidden";
};

// 追加滚动
Vue.prototype.canScroll = function () {
  document.body.style.overflow = "";
};
  1. main.js引入utils工具方法文件
js 复制代码
import "./utils/isScroll";
  1. 模板template中使用

    • 当打开popup弹出层时:
    js 复制代码
    	<view
        	@tap="
            	() => {
                	show = true;
                	noScroll();
                }
            "
        	>
        	点击弹出弹出层
    	</view>
    • 当关闭popup弹出层时:
    js 复制代码
    <u-popup
    	:show="show"
    	mode="right"
    	@close="
    		() => {
    			show = false;
    			canScroll();
    		}
    	"
    closeable
    >
    	<view>...内容</view
    </u-popup>
  2. methods中使用

    • 当打开popup弹出层时:
    js 复制代码
    <view @tap="open">
    	点击弹出弹出层
    </view>
    	// ...
    <script>
    	methods: {
    		open(){
    			this.show = true
    			this.noScroll()
    		}
    	}
    </script>
    • 当关闭popup弹出层时:
    js 复制代码
    <u-popup
    	:show="show"
    	mode="right"
    	@close="close"
    	closeable
    >
    	<view>...内容</view
    </u-popup>
    // ...
    <script>
    	methods: {
    		close(){
    			this.show = false
    			this.canScroll()
    		}
    	}
    </script>
相关推荐
90后的晨仔10 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
CHB13 小时前
uni-app x 蒸汽模式 性能测试基准报告 Benchmark【Android版】
android·ios·uni-app
C++、Java和Python的菜鸟15 小时前
第12章 前端Web进阶(Vue工程化+ElementPlus)
前端·javascript·vue.js
妙码生花16 小时前
让各大 AI 整理出来的前端工程命名最简实践(Vue + TS)
前端·javascript·vue.js
u01030552717 小时前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
用户8417948145618 小时前
vxe-table 实现编辑列的权限控制:列级与表级权限管理
vue.js
Tian_Hang18 小时前
Vue3 父子组件通讯
前端·javascript·vue.js
C++、Java和Python的菜鸟1 天前
第13章 前端Web实战(Tlias案例)
前端·javascript·vue.js
qq83443101 天前
Luckysheet,在Vue 等框架中初始化失败(白屏),如何修复
前端·javascript·vue.js
u0103055271 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节