Vue中子组件的弹框滚动条不影响父元素滚动

问题描述

在vue的某个页面的子组件中设置了弹框,主页面和弹窗都有滚动条,当弹窗滚动条滑到底部时,会触发主页面的滑动。怎么禁止主页面的滑动?关闭弹窗后,再恢复主页面的滑动。

解决方法

基于Jquery的方式

嫌繁琐,没有亲测,网上有很多方法
举例 https://blog.csdn.net/Yiright/article/details/53944024

原生JS:给body加上position:fixed

问题: 这种方式在关闭弹窗后,会让主页面滑到顶部,后续还需要重新获取主页面的scrolltop,重新定位,比较麻烦

原生JS:给body加上overflow:hidden

原文:https://blog.csdn.net/yangjingjing9/article/details/82456554

beforeCreate () {
  document.querySelector('body').setAttribute('style', 'overflow:hidden')
},
beforeDestroy () {
  document.querySelector('body').removeAttribute('style')
}

使用:这里的调用方式随自己的代码设计调用,不一定是这两个钩子函数
优点: 开启和关闭弹窗时,主页面位置不会改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值