Vue 中Dialog 对话框,body内容跟随弹窗滚动问题解决

在Vue中使用Dialog对话框时遇到滚动条问题,当弹窗显示后,浏览器出现两个滚动条,滚动操作影响的是body而非弹窗内容。解决方法是在子组件弹窗上添加 'append-to-body' 属性,并设置为 true,确保鼠标事件被弹窗捕获,从而实现弹窗内容的滚动。参考Element UI官方文档可了解更多详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上找了很久解决方案,都无法解决,其实只要加一个属性即可解决。

场景:

          父组件中引入子组件弹窗,弹窗出现后,浏览器右侧出现两个滚动条。

          滚动鼠标滚动的是灰色背景。

原因:

          鼠标事件被背景body获取 ,而不是被弹窗所获取,因此滚动鼠标触发的是背景的滚动

解决:

          为子组件弹窗加入 append-to-body 属性(嵌套的 Dialog 必须指定该属性并赋值为 true


 父组件中引入子组件

<ShowPDF :showSection=sectionShow.show
    :title=sectionShow.title
    :path=sectionShow.path
    @onCloseDialog=sectionCancelDialog>
</ShowPDF>

 子组件ShowPDF 弹窗

<el-dialog :title="title" :visible.sync="showSectionDialog"
    @close="closeSectionDialog" @open="openSectionDialog"
    :close-on-click-modal="false" top="20px"
width="90%" :append-to-body="true">

这是Element官网对Dialog 对话框的一个属性解析,https://element.faas.ele.me/#/zh-CN/component/dialog

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值