测试移动端页面的时候,偶然发现点击底部input输入框时,弹出的虚拟键盘偶尔会挡住input输入框。

输入框固定在页面底部,如图所示:

input固定底部设计图.png

点击底部input输入框唤起软键盘时,软键盘挡住输入框。如图所示:

点击input键盘挡住图.png

测试过多台真机发现安卓的手机都不会出现这个问题,个别的iOS手机有问题。而且同一型号的苹果有的有问题有的没有问题。经过多方的归纳、总结惊奇的发现:会出现这个bug的苹果手机,使用的都是苹果第三方输入法,而使用苹果自带的输入法则没有这个bug。

出现这个bug的时候输入字符的时候,input输入框又会滚动上去。沿着这个思路往下想,我想到input获取焦点失败、滚动浏览器窗口或容器元素的问题。

解决这个问题的思路是,点击input输入框的时候,让其input滚动到当前div的顶部。于是我想到了Element.scrollIntoView() 方法。

DOM规范中并没有规定各浏览器需要实现怎样的滚动页面区域,各浏览器实现了相应的方法,可以使用不同的方式控制页面区域的滚动。这些方法作为HTMLElement类型的扩展存在,所以它能在所有元素上使用。

Element.scrollIntoView()语法:
<code>
element.scrollIntoView(); // Equivalent to element.scrollIntoView(true)
element.scrollIntoView(alignToTop); // Boolean arguments
element.scrollIntoView(scrollIntoViewOptions); // Object argument
</code>

参数:alignToTop(可选)
<code>
Is a Boolean value:
If true, the top of the element will be aligned to the top of the visible area of the scrollable ancestor. This is the default value.( 如果alignToTop为true,该元素的顶部将对齐的滚动的祖先的可见区域的顶部。这是默认值。)
If false, the bottom of the element will be aligned to the bottom of the visible area of the scrollable ancestor.(如果alignToTop false, 该元素的底部将对齐的滚动的祖先的可见区域的底部。)
</code>

点击input底部输入框,软键盘挡住输入框的解决办法是,点击输入框的时候给input绑定事件,使用 Element.scrollIntoView()方法使元素弹到祖元素可见区域的顶部。代码如下:
<code>
$("input").on("click", function() {
var target = this;
setTimeOut(function() {
target.scrollIntoView(true);
}, 100);
})
</code>

更多专业前端知识,请上 【猿2048】www.mk2048.com

点击底部input输入框,弹出的软键盘挡住input(苹果手机使用第三方输入法 )相关推荐

  1. [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决?

    [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决? window.addEventListener("resize", function () {if ...

  2. Android11键盘弹出动画,(2016-11-04完美解决)移动端iOS第三方输入法遮挡底部input及android键盘回落后留白问题...

    问题概述 问题1:H5 web 移动端 输入框, 键盘唤起后fixed定位好的元素跟随页面滚动了起来- fixed属性失效了!满屏任性横飞, 如下图: 问题2:有几后来含些在到气时按式近篇来又的方浏消 ...

  3. android 键盘上方浮动,【已解决】点击input输入框时Android端底部的Tab弹出显示在键盘上方...

    已经用Preact实现H5页面的移动端app了 iOS和Android分别是原生app去打包加了个壳,内部用Webview去加载H5页面 现在遇到一个问题: Android端,对于input输入框来说 ...

  4. input 禁止弹出默认的键盘处理方法

    <input type="text" placeholder="" v-model="" @click="stopdefau ...

  5. 解决 苹果ios input输入框弹出输入法 但是 无法输入内容问题

    如祖先元素或者当前元素有以下样式 去除样式 // -webkit-touch-callout: none; /*系统默认菜单被禁用*/// -webkit-user-select: none; /*w ...

  6. Android开发之将Edittext输入弹出的软键盘设置搜索确定键。详细代码,已验证可用。...

    2019独角兽企业重金招聘Python工程师标准>>> 1,首先在布局中添加 android:imeOptions="actionSearch 2,然后java代码中设置代 ...

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

    问题 如图一个表单: 在部分android机型上测试点击靠下的输入框时遇到弹出的软键盘挡住输入框问题,ios可自身弹起(ios自身的调整偶尔也会出问题,例如第三方键盘会遮挡,原因是第三方输入法的too ...

  8. js手机键盘遮挡_iphone手机微信页面软键盘遮挡input输入框解决方法

    现象描述:iphone手机微信页面,用position: fixed;定位的input或textarea输入框,在获取输入焦点时,会被弹出的输入法软键盘遮挡,导致用户无法看到输入框,效果如图: 简化测 ...

  9. 5种方法完美解决android软键盘挡住输入框方法详解

    版权声明:本文为CSDN博主「潇潇凤儿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/smileiam/ ...

最新文章

  1. 不看后悔 如何删除WIN7的100M隐藏分区
  2. 成员函数指针与高性能的C++委托(三)
  3. 扩展系统功能--装饰模式
  4. 计算机网络--详述OSI七层模型与TCP/IP五层模型
  5. 机器学习第七篇:详解EM算法
  6. 软件构造学习笔记-实验3
  7. springboot忽略证书_SpringBoot获取resource下证书失败
  8. Python 生成UUID
  9. 网络编程在线英英词典之客户端代码框架搭建(一)
  10. Apk去掉签名以及重新签名的方法
  11. php源码旅行网站模板,背包客旅行扁平网站模板
  12. 中国研发经费投入逼近2万亿,保持两位数增速,企业成为主要力量
  13. Unity 自由视角的惯性旋转
  14. LM2586S 应用笔记
  15. PAYPAL使用虚拟卡的会有优势吗?
  16. ecshop dwt替换为html,修改ecshop模板中lbi和dwt文件需知
  17. HR_NZ_ROUNDING_DECIMALS DUMP
  18. 华为交换机vlan配置举例_一步步详解华为交换机配置实例,一看就会
  19. 知识经济时代的基石:知识协同
  20. H5请在微信客户端打开链接

热门文章

  1. 【数字信号处理】基于DFT的滤波系列2(含MATLAB代码)
  2. C语言实现01字符转比特流
  3. 电机与拖动,直流他励电动机的特性测试实验报告,江南大学自动化
  4. android数据流分类,【Android工程之类】1 MVVM架构 - MVVM与单向数据流
  5. 苹果wifi网速慢怎么办_所以,WiFi和4G到底哪个更耗电?
  6. rootfs 制作ubuntu_为n1制作aarcm64/arm64 ubuntu rootfs系统
  7. 最常出现的字符串 Most Common Word
  8. 设计模式之- 外观模式(Facade Pattern)
  9. css实现简单的告警提示动画效果
  10. OpenStack_I版 1.准备过程