【iOS】解决键盘收起时页面上移的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【iOS】解决键盘收起时页面上移的问题相关的知识,希望对你有一定的参考价值。
参考技术A ios在输入框键盘收起时,页面整体上移,露出了底部的黑底,目测一下,上移的高度大约是顶部的状态栏加导航条的高度,应该是键盘收起后navigationBar.translucent改变导致的。解决方案:
解决安卓收起键盘无法触发失焦事件的问题
参考技术A最近在做一个移动端 Web 项目,在首页底部是有一个类似于 APP 导航栏(以下称 FootNav ),采用的 fixed 布局固定于底部。同时页面有一些 <input> 输入框(以下称 Input )。
当聚焦于 Input 时,在 iOS 预期效果是没问题,但是在杀千刀的 Android 上,页面高度发生变化,导致 FootNav 固定在手机键盘上面,同时 FootNav 也直接挡住了输入框,交互体验非常的糟糕。
烦死了...
先了解下背景,键盘的弹出收起,在 iOS 端与 Android 端的 WebView 中表现并非一致的。
针对 Android 设备做处理就行了,iOS 无需处理。
处理方式: Input 聚焦隐藏 FootNav ,失焦时再将其显示出来 。(同理,修改布局方式也是一样的)
首先这种处理思路是没毛病的,但是...
监听页面高度的变化,利用这一点我们就可以处理 FootNav 的隐藏/显示了。
思路很简单:首先进入页面时,先记录窗口的原始高度。每当 Input 聚焦时,设置 window.onresize 函数,当窗口宽高发生改变时便会触发。
以 React 为例:
The end.
以上是关于【iOS】解决键盘收起时页面上移的问题的主要内容,如果未能解决你的问题,请参考以下文章
h5 ios微信浏览器 input获取焦点后,收起软键盘,光标错位
[Cordova/Phonegap] Cordova iOS 应用在第三方输入法的键盘弹出(点击输入框)时,页面不上移,导致输入框被键盘遮挡 的解决办法