Drawer抽屉关闭后主内容区域无法滚动怎么办? UX焕焕 提问于 2026-01-28 11:36:31 阅读 45 组件 我在用Vue做页面时加了个Drawer侧边栏,但发现抽屉关闭后主页面的内容区域完全无法滚动了。明明设置overflow:auto的div里有足够长的内容: 打开抽屉 尝试过在关闭抽屉后手动设置document.body.style.overflow=’auto’,但发现是父容器的overflow被抽屉组件劫持了。查了开发者工具发现body上多了个.ant-modal-wrap类,里面设置了overflow:hidden… Drawer抽屉反馈组件 我来解答 赞 20 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 打工人玉英 Lv1 这个问题我遇到过无数次了。Ant Design 的 Drawer 组件默认会在 body 上加一个 .ant-drawer-wrap 元素,并且这个元素会强制设置 overflow: hidden,导致你关掉抽屉之后页面滚动也被锁死了。 解决办法很简单,关闭抽屉的时候手动把这个 wrap 的样式干掉就行: beforeClose() { this.drawerVisible = false this.$nextTick(() => { const wrap = document.querySelector('.ant-drawer-wrap') if (wrap) { wrap.style.overflow = 'auto' } }) } 或者你也可以在全局加个样式覆盖: .ant-drawer-wrap { overflow: auto !important; } 拿去改改,我一般选第一种,第二种可能会影响其他抽屉行为。 回复 点赞 12 2026-02-05 13:13 百里天硕 Lv1 这问题我遇到过,Drawer组件确实会加个overflow:hidden到body上。手动改样式有点麻烦,代码放这了: methods: { closeDrawer() { this.isDrawerVisible = false document.body.style.overflow = 'auto' // 关闭时强制改回来 setTimeout(() => { document.querySelector('.ant-drawer-wrapper').remove() // 移除多余的包裹层 }, 300) } } 不过更推荐用CSS覆盖,简单粗暴: body { overflow: auto !important; } 注意:如果用了UI库的全局样式,可能需要加!important。反正这种问题就是试就完事了,复制粘贴大法好。 回复 点赞 18 2026-01-29 23:11 加载更多 相关推荐 2 回答 41 浏览 TDesign的Drawer抽屉怎么设置固定在页面顶部? 在用TDesign做页面时,Drawer抽屉总是跟着页面内容滚动,我设置了placement="top"但滚动页面时它会跑到中间位置,试过加固定定位样式也没用,该怎么让它始终保持在视口顶部呢? Prog.彦森 组件 2026-02-19 08:20:32 2 回答 61 浏览 Naive UI 的 Drawer 抽屉怎么动态修改宽度? 我在用 Naive UI 的 Drawer 组件,想根据屏幕尺寸动态调整抽屉的宽度。比如在桌面端设成 600px,移动端变成 100%。我试过直接绑定 width 属性::width="drawerW... 淑霞酱~ 组件 2026-03-18 05:43:24 1 回答 35 浏览 Ant Design Drawer 抽屉关闭后怎么清除表单数据? 我在用 Ant Design 的 Drawer 组件做侧边弹窗,里面放了个 Form 表单。现在问题是:每次打开抽屉都会保留上次填写的内容,即使我手动点了关闭按钮。我试过在 onClose 里调用 f... 百里米阳 组件 2026-03-12 17:31:24 2 回答 28 浏览 Material-UI的Drawer抽屉为什么点击遮罩层关不掉? 我用Material-UI写了个临时抽屉(temporary Drawer),但点遮罩层(backdrop)的时候抽屉不会自动关闭,文档里说默认是能关的啊?是不是我哪里写错了? 我试过加了onClos... 程序员欣龙 组件 2026-03-10 16:47:18 2 回答 38 浏览 TDesign Mobile的TabPane内容区域无法滚动怎么办? 在用TDesign Mobile的Tab组件做页面时,发现TabPane的内容区域设置了高度后无法滚动,内容直接溢出到页面外了,试过加overflow属性也不行 <template> &l... 宇文远香 移动 2026-02-10 23:53:27 1 回答 24 浏览 Material-UI 的 Drawer 为什么在手机上滑动关闭不了? 我用 Material-UI 的 Drawer 做了个侧边栏,在桌面端点遮罩能关,但在手机上左右滑动却关不掉,试过加 variant="persistent" 和 variant="temporary... 欧阳星语 框架 2026-03-23 20:18:20 1 回答 47 浏览 iView的Drawer抽屉怎么设置默认不显示? 我用iView的Drawer组件,每次页面加载它都自动弹出来了,明明没点触发按钮啊。是不是哪里默认打开了? 我试过把:visible="false"写死,但好像没用,还是显示。官方文档里也没说清楚初始... W″栾诺 组件 2026-03-16 21:13:18 2 回答 39 浏览 Arco Design抽屉关闭后怎么自动销毁组件? 我用 Arco 的 Drawer 组件弹出一个表单,但发现即使关闭了抽屉,里面的组件实例还在内存里,数据也没重置。试过设置 unmountOnClose 为 true,但好像没生效? 这是我的用法: ... 柯依🍀 组件 2026-02-26 08:41:21 1 回答 26 浏览 uni-ui的抽屉组件关闭后怎么触发页面刷新 在uni-app里用uni-drawer抽屉组件,修改数据后关闭抽屉,页面数据没更新。之前试过在关闭事件里用uni.$emit('refresh'),页面监听了这个事件但没反应,控制台也没报错,求问正... Top丶俊蓓 移动 2026-02-10 23:36:28 2 回答 71 浏览 抽屉编辑时如何保持数据与父组件同步? 在用Ant Design的Drawer做表单编辑时,修改数据后关闭抽屉,父组件的表格数据没及时更新,是什么问题啊? 我这样写的:父组件通过useState保存数据列表,点击编辑按钮时把当前行数据传给D... 程序员茜茜 交互 2026-02-07 10:52:35
解决办法很简单,关闭抽屉的时候手动把这个 wrap 的样式干掉就行:
或者你也可以在全局加个样式覆盖:
拿去改改,我一般选第一种,第二种可能会影响其他抽屉行为。
不过更推荐用CSS覆盖,简单粗暴:
注意:如果用了UI库的全局样式,可能需要加!important。反正这种问题就是试就完事了,复制粘贴大法好。