android h5输入框被键盘遮挡,h5软键盘挡住输入框问题解决(android)

本文介绍了在部分Android设备上H5页面输入框被键盘遮挡的问题,分析了两种Android键盘弹出效果,并提出通过设置相对定位调整输入框位置的解决方案。在React项目中,通过监听输入框的焦点和失焦事件,动态调整页面元素的top属性,以确保输入框可见。同时,文章提到了固定定位按钮在键盘收起时可能带来的问题以及一些后续优化思路。
摘要由CSDN通过智能技术生成

问题

如图一个表单:

ddf1b6789e0d1f9130c8a2dc1b1d38d9.png

在部分android机型上测试点击靠下的输入框时遇到弹出的软键盘挡住输入框问题,ios可自身弹起(ios自身的调整偶尔也会出问题,例如第三方键盘会遮挡,原因是第三方输入法的tool bar或者键盘也被当做可视区域,这里不做讨论)

问题分析及解决办法确立

最常见的是使用两个方法:scrollIntoViewIfNeeded()、scrollIntoView(),使用方法自行百度。在我这里无效。

经测试发现android弹出键盘时有两种效果:

1.将activity挤压,键盘也占一部分activity空间;

2.键盘弹出在浏览器上面覆盖一层,不影响浏览器大小。

第二种会出现遮挡问题

于是想到以下两种方案:

1.通过动态增加页面高度和设置scrollTop来使输入框到达合适的位置

2.设置相对定位,通过top来使输入框到达合适的位置

影响实现的两个点:

1.js拿不到键盘的弹出和收起事件;

2.覆盖一层的键盘弹出方式不会触发window.resize事件和onscroll事件。

解决

第一种经试验有些问题影响了实现,这里只讨论第二种。

直接上代码,这里是react项目(css设置absolute配合js改变top实现效果,transiti

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值