【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 应用在第三方输入法的键盘弹出(点击输入框)时,页面不上移,导致输入框被键盘遮挡 的解决办法

ios12及以上软键盘收起后页面被拉长

移动端软键盘弹出影响页面布局(iOS软键盘取消后,页面没有恢复),移动端软键盘监听(弹出,收起),及影响定位布局的问题