移动端软键盘遮挡问题
文章目录 scrollIntoView 介绍 1.利用 scrollIntoView 实现防遮挡 2.利用 scroll 实现防遮挡 scrollIntoView 介绍 移动端的H5页面,当输入框元素获取焦点时,会吊起软键盘,如果输入框被软键盘遮挡了,则页面会发生滚动使输入框显示在可视区。浏览器这种默认处理机制在元素设置了绝对定位或设置了 html,body{height:100%;} 时可能会失效,通常需要手动处理。 防软键盘遮挡的处理思路: IOS系统中 ,软键盘吊起时,整个 window 往上滚,window的宽高不变,不会触发window.onresize 事件。并且,软键盘始终不会遮挡输入框,所以在ios中不处理。有些版中的微信页面存在页面不回滚的bug,这个需要处理。 安卓系统中 ,软键盘吊起时,window 不滚动,window的高度减小,减少值等于软键盘的高度,会触发 window.onresize 事件。如果输入框被遮挡,可使用 scrollIntoView 方法强制在可视区显示获取焦点的输入框元素。 让当前的元素滚动到浏览器窗口的可视区域内方法。 MDN scrollIntoView() 浏览器支持度较高(推荐)。 scrollIntoViewIfNeeded() 部分浏览器支持,懒滚动模式。 scrollIntoView() Element