最近遇到了一个小bug,在ipad上编辑word文件的虚拟键盘收回时,会导致页面的导航条隐藏,且页面的下面会出现一块空白
自己尝试的解决方案
-
通过focusin和focusout对虚拟键盘的弹入弹出进行监听,但发现基本没什么用。我的理解是:focusin和focusout比较适合于监听对于文本输入框的键盘事件。
-
通过比较screen.availHeight和screen.height进行比较。如果在虚拟键盘弹出时元素的高度等有变化,那么可以尝试通过这种方式判断虚拟键盘是不是弹出来了.
-
另一种方法是:监听一个事件,比如我监听的就是scroll事件,对会发生隐藏的元素设置scrollIntoView或者scrollIntoViewIfNeeded,通过设置不同的参数,可以使得作用的元素与视口的上面或下面对齐。
-
resizeObserver
-
MutationObserver 用来监听DOM的变化,包括结构,属性这些。
后来发现,是css属性值的问题。
`<style>`
`#container {`
`display: flex;`
`width: 100vh;`
`height: 100vw;`
`}`
`#child {`
` flex: 1;`
` position: absolute;`
` top: 0;`
` left: 0;`
` right:0 ;`
` height: 100%;`
&