【发布时间】:2022-11-08 02:52:31
【问题描述】:
当我在可滚动区域内有一个弹出框,其中任何浮动库都在反应(tippy、floating-ui 等),并且我在弹出框内有一个带有autoFocus 的input 时,屏幕将在弹出框呈现时滚动.我该如何解决这个问题?
【问题讨论】:
标签: javascript reactjs popover autofocus floating-ui
当我在可滚动区域内有一个弹出框,其中任何浮动库都在反应(tippy、floating-ui 等),并且我在弹出框内有一个带有autoFocus 的input 时,屏幕将在弹出框呈现时滚动.我该如何解决这个问题?
【问题讨论】:
标签: javascript reactjs popover autofocus floating-ui
像 floating-ui 或 tippy 这样的库定位元素后它已安装。因此,弹出框将在短时间内将自己定位在例如x: 0, y: 0,并且autoFocus 自动滚动页面以使弹出框适合视口。这可以通过打开autoFocus 并在组件安装后立即调用inputRef.current.focus({preventScroll: true}) 来解决
有一些更骇人听闻的方法,例如将焦点设置在 setTimeout 上,但这会使它变得更加复杂。
【讨论】: