原生HTML弹出框在Safari/iOS上不起作用

移动开发 2026-07-11

我有一个React应用,使用 原生HTML弹出框

我的做法是:

  • 渲染一个按钮,其作用只是通过useState来切换可见性。
  • 渲染弹出容器,至少具备以下属性:

```js

``` - 在useEffect中监听来自父组件的可见性状态,并在ref上调用togglePopover: ```js useEffect(() => { if (open) { popoverRef.current && popoverRef.current.showPopover(); } else { popoverRef.current && popoverRef.current.hidePopover(); } }, [open, popoverRef]); ``` 这是我最小可行的实现,用来打开和关闭弹出框。然而,在Safari或 iOS上,这似乎根本不起作用。当用户点击按钮时,似乎什么也没有发生。为什么? ##解决方案 原来需要在父级添加一行特定的CSS,这个父级就是弹出容器的父级:
overflow: "initial"
这样它们就能正常打开。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章