Reproduction link
Steps to reproduce
1.点击 测试滚动 按钮出现下拉框;
2.点击下拉框中的 sub menu 出现子层级;
3.对父盒子进行y轴滚动;
4.发现sub meun 子层级盒子不跟随父盒子滚动而滚动
What is expected?
期望 多层级 下各个popup都可以跟随父盒子滚动而滚动。
What is actually happening?
多层级下子层级位置异常,不跟随父盒子滚动而滚动
| Environment | Info |
| ------------ | ------------ |
| antd | 5.17.2 |
| React | v18.x |
| System | windows |
| Browser | chrome/Edge |
3条答案
按热度按时间xwmevbvl1#
Start a new pull request in StackBlitz Codeflow .
7qhs6swi2#
我对比了 Menu 组件 和 Dropdown 组件的多层级被包裹在一个包含滚动条的容器当中的情况。
Menu 组件的二级菜单样式中的 inset 属性值会随着容器内滚动条滚动而发生变化,即Menu的二次菜单会随着滚动条一起移动;
Dropdown 组件的二级菜单样式中的 inset 属性值不会随着容器内滚动条滚动而变化,所以 Dropdown 的二级菜单不会随着滚动条一起移动。
怀疑 Dropdown 组件没有处理被包裹在带有滚动条容器当中时,随着滚动条动态设置 inset 属性值
希望对大家有所帮助
cgh8pdjw3#
一级弹层本身是在 scroll 容器外,而容器滚动时会使得一级弹层同步移动,而对于二级弹层是没有监听到容器滚动的(因为一级弹层没有在容器里)。
感觉需要一个通知机制告知子元素可能存在的滚动情况。