ant-design Dropdown组件多层级情况下,当父盒子滚动时,多层级的popup位置异常不跟随滚动

unftdfkk  于 4个月前  发布在  其他
关注(0)|答案(3)|浏览(62)

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 |

7qhs6swi

7qhs6swi2#

我对比了 Menu 组件 和 Dropdown 组件的多层级被包裹在一个包含滚动条的容器当中的情况。

Menu 组件的二级菜单样式中的 inset 属性值会随着容器内滚动条滚动而发生变化,即Menu的二次菜单会随着滚动条一起移动;

Dropdown 组件的二级菜单样式中的 inset 属性值不会随着容器内滚动条滚动而变化,所以 Dropdown 的二级菜单不会随着滚动条一起移动。

怀疑 Dropdown 组件没有处理被包裹在带有滚动条容器当中时,随着滚动条动态设置 inset 属性值

希望对大家有所帮助

cgh8pdjw

cgh8pdjw3#

一级弹层本身是在 scroll 容器外,而容器滚动时会使得一级弹层同步移动,而对于二级弹层是没有监听到容器滚动的(因为一级弹层没有在容器里)。
感觉需要一个通知机制告知子元素可能存在的滚动情况。

相关问题