做web端项目过程中,发现点击弹窗后,弹窗后面的页面还可以滚动。
复现如下:

【方法1】
step1:在弹框页面使用
@mousewheel.prevent 
<div
    v-show="workShowMenu"
    @mousewheel.prevent
 >
 // TO DO...弹框内容
</div> 
注意:该方法不适用于弹框上也有滚动条的时候,会失效。
方法2】
step1:在点击出现弹框的事件里加上这句:
document.documentElement.style.overflow = "hidden"; 
step2:在点击关闭弹框的事件里加上这句:
document.documentElement.style.overflow = "scroll"; 
【优化】
若项目里使用弹窗较多,则可以通过在原型上定义它们使其在每个 Vue 的实例中可用(main.js)
//弹出框后面页面禁止滑动
Vue.prototype.$stopScroll = function () {
  document.documentElement.style.overflow = "hidden";
}
//弹出框后面页面可以滑动
Vue.prototype.$allowScroll = function () {
   document.documentElement.style.overflow = "scroll";
}
 
step1:在点击出现弹框的事件里加上这句:
this.$stopScroll();
 
step2:在点击关闭弹框的事件里加上这句:
this.$allowScroll();
 
注:两个事件之所以要用$开头,因为 $ 是在 Vue所有实例中都可用的属性的一个简单约定。这样做会避免和已被定义的数据、方法、计算属性产生冲突。


![[概率论] 随机变量的分布函数 (一)](https://i-blog.csdnimg.cn/direct/061b95e13a8e4e84a89fcd3a0c0e8856.png)
















