问题描述

在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')
}

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

Logo

前往低代码交流专区

更多推荐