【发布时间】:2022-10-05 01:32:05
【问题描述】:
我正在开发一个使用 MaterialUI 的应用程序,该应用程序使用 iFrame 嵌入到其他页面中。每当我们展示一个呈现为Popover 的组件(MUI select 和menu 组件都这样做)时,iFrame 会随着弹出框的打开滚动/跳转位置。
这是发生这种情况的示例。 https://erehd6.csb.app
发生在 Chrome 和 Firefox 中,但不是 Safari。
要重现,您需要将 iFrame 滚动到页面顶部。然后弹出的演示按钮会表现出这种行为,或者溢出菜单来访问站点外的代码源(github/stackblitz/copy JS source/copy TS source):
<!doctype html>
<html lang="en">
<body style="margin: 0;">
<div style="height: 1000px;"></div>
<iframe src="https://v4.mui.com/api/popover/" style="border: 0; width: 100vw; height: 100vh;"></iframe>
<div style="height: 1000px;"></div>
</body>
</html>
如何防止这种滚动/跳转发生? Popper 组件没有同样的问题,但我不知道如何以不需要库分叉的方式用 Popper 替换 Popover(以及大量重新测试我们的应用程序) .顺便说一句,这发生在所有版本的 MUI 中,但我无法将当前站点放入 iFrame。
我尝试用Fade 替换Grow 的过渡组件,但这没有帮助。我仍在试图查明确切的问题,它在 positioning code for the Popover. 的某个地方
【问题讨论】:
-
快速推荐:提供一个 pastebin 链接(例如代码和框)以快速阅读您的实现并获得更快的反馈。
-
谢谢推荐,补充一下。
标签: reactjs material-ui popover