Drawer抽屉关闭后主内容区域无法滚动怎么办? UX焕焕 提问于 2026-01-28 11:36:31 阅读 23 组件 我在用Vue做页面时加了个Drawer侧边栏,但发现抽屉关闭后主页面的内容区域完全无法滚动了。明明设置overflow:auto的div里有足够长的内容: 打开抽屉 尝试过在关闭抽屉后手动设置document.body.style.overflow=’auto’,但发现是父容器的overflow被抽屉组件劫持了。查了开发者工具发现body上多了个.ant-modal-wrap类,里面设置了overflow:hidden… Drawer抽屉反馈组件 我来解答 赞 13 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 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; } 拿去改改,我一般选第一种,第二种可能会影响其他抽屉行为。 回复 点赞 9 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。反正这种问题就是试就完事了,复制粘贴大法好。 回复 点赞 8 2026-01-29 23:11 加载更多 相关推荐 2 回答 3 浏览 TDesign的Drawer抽屉怎么设置固定在页面顶部? 在用TDesign做页面时,Drawer抽屉总是跟着页面内容滚动,我设置了placement="top"但滚动页面时它会跑到中间位置,试过加固定定位样式也没用,该怎么让它始终保持在视口顶部呢? Prog.彦森 组件 2026-02-19 08:20:32 2 回答 12 浏览 TDesign Mobile的TabPane内容区域无法滚动怎么办? 在用TDesign Mobile的Tab组件做页面时,发现TabPane的内容区域设置了高度后无法滚动,内容直接溢出到页面外了,试过加overflow属性也不行 <template> &l... 宇文远香 移动 2026-02-10 23:53:27 1 回答 13 浏览 uni-ui的抽屉组件关闭后怎么触发页面刷新 在uni-app里用uni-drawer抽屉组件,修改数据后关闭抽屉,页面数据没更新。之前试过在关闭事件里用uni.$emit('refresh'),页面监听了这个事件但没反应,控制台也没报错,求问正... Top丶俊蓓 移动 2026-02-10 23:36:28 2 回答 42 浏览 抽屉编辑时如何保持数据与父组件同步? 在用Ant Design的Drawer做表单编辑时,修改数据后关闭抽屉,父组件的表格数据没及时更新,是什么问题啊? 我这样写的:父组件通过useState保存数据列表,点击编辑按钮时把当前行数据传给D... 程序员茜茜 交互 2026-02-07 10:52:35 1 回答 13 浏览 虚拟滚动到中间位置时列表内容突然跳动怎么办? 我在用虚拟滚动渲染长列表时发现,当快速滚动到中间区域后松手,列表内容会突然向上跳动10-20px,但滚动到底部正常。我按网上的方案用了IntersectionObserver,调整了start和end... FSD-梓淇 交互 2026-02-09 16:49:36 1 回答 134 浏览 虚拟列表滚动时内容错位,如何解决? 我在给聊天列表做虚拟滚动优化时遇到了问题,当快速滚动到中间区域后,列表内容会出现几秒的错位闪烁,但过一会又恢复正常。 已经用react-window实现了基础虚拟列表,设置了itemSize为60,容... Dev · 常青 优化 2026-01-29 17:56:27 1 回答 53 浏览 uni-ui的抽屉组件为什么无法在页面底部固定? 我在用uni-ui的抽屉组件做侧边栏时发现,设置position: fixed后抽屉还是会随页面滚动,但文档里说默认支持固定定位啊 我尝试这样写的: <template> <view... 皇甫雨涵 移动 2026-02-13 22:59:27 2 回答 30 浏览 Arco Design Popover内容高度无法自适应怎么办? 在用Arco的Popover做用户操作提示时,发现内容区域的高度总是固定显示,文字超出部分直接被截断了,设置CSS样式好像没生效... 我这样写的代码: import { Popover } from... Des.子赫 组件 2026-02-09 08:14:30 1 回答 37 浏览 React-Window滚动时子项内容错位怎么办? 我在用react-window做长列表优化时遇到问题,当滚动到中间位置,子项的内容会突然错位覆盖到其他项上。之前按教程设置了固定高度,但实际运行时还是有问题。 我的代码结构是这样的: <Fixe... W″俊豪 优化 2026-02-06 20:14:29 2 回答 38 浏览 长列表滚动时可视区域高度计算不准怎么办? 我在用虚拟滚动优化长列表时,发现可视区域高度总是比实际窗口小20px,导致最后几项提前渲染了。之前用window.innerHeight计算容器高度,但加了padding后问题更严重了。 尝试改用容器... 码农誉琳 优化 2026-02-06 08:02:24
解决办法很简单,关闭抽屉的时候手动把这个 wrap 的样式干掉就行:
或者你也可以在全局加个样式覆盖:
拿去改改,我一般选第一种,第二种可能会影响其他抽屉行为。
不过更推荐用CSS覆盖,简单粗暴:
注意:如果用了UI库的全局样式,可能需要加!important。反正这种问题就是试就完事了,复制粘贴大法好。