手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

本文介绍了解决Android微信内置浏览器中WebApp文本输入框被弹出键盘遮挡的问题。通过一段JavaScript代码实现了当输入框被激活时,页面自动滚动以确保其可见。此外还提供了一种方法来处理因底部工具栏上移导致的遮挡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

最近碰到Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机输入法键盘遮盖住。

找到一段js代码直接解决之,点击时强制滚动之,好像也解决了在Android浏览器下浏览的同样问题。

 

复制代码
1 if(/Android [4-6]/.test(navigator.appVersion)) {
2     window.addEventListener("resize", function() {
3         if(document.activeElement.tagName=="INPUT" || document.activeElement.tagName=="TEXTAREA") {
4             window.setTimeout(function() {
5                 document.activeElement.scrollIntoViewIfNeeded();
6             },0);
7         }
8     })
9 }
复制代码

 

补充一段代码:对于某些页面,由于页面设计底部可能有工具栏(比如某些页面固定了一个footer在底部),这时候虽然系统计算出来不需要滚动,但弹出输入法时,底部的工具栏却移动上去正好遮盖住输入框(常见于输入框正好在页面中部的情况)。
这时候可以通过判断屏幕高度变化来隐藏该底部工具栏。

    <script type="text/javascript">
        document.write( '<style>#footer{visibility:hidden}@media(min-height:' + ($( window ).height() - 10) + 'px){#footer{visibility:visible}}</style>' );
    </script>

转载于:https://www.cnblogs.com/yonina/p/6256442.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值