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>
相关推荐
游戏开发爱好者844 分钟前
React Native iOS 代码如何加密,JS 打包 和 IPA 混淆
android·javascript·react native·ios·小程序·uni-app·iphone
2501_915918412 小时前
iOS mobileprovision 描述文件管理,新建、下载和内容查看
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张2 小时前
iOS 应用程序使用历史记录和耗能记录怎么查?
android·ios·小程序·https·uni-app·iphone·webview
xuankuxiaoyao2 小时前
VUE.JS 实践 第二章
前端·javascript·vue.js
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 基于Vue的电商管理平台为例,包含答辩的问题和答案
前端·javascript·vue.js
Wayward and pinnacle2 小时前
二次封装多选框组件
前端·javascript·vue.js
Alair‎3 小时前
Vue 3 基础教程:从入门到精通
前端·javascript·vue.js
百锦再3 小时前
树形数据展示:树形表格与树形控件的深度对比(Vue实现)
javascript·vue.js·ecmascript·递归·tree·data·table
码农阿豪3 小时前
Vue+Ant Design表格组件开发实战:从问题到优化的完整指南
前端·javascript·vue.js
QQ24391973 小时前
spring boot医院挂号就诊系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot