js解决软键盘遮挡输入框的问题分享


Posted in Javascript onDecember 19, 2017

经验须知

弹出软键盘时:

ios端$(‘body').scrollTop()会改变

android端$(window).height()会改变

拉起键盘不是一瞬间,而是有一个缓动过程

问题重现

ios端,经常会出现输入法遮挡输入框的问题(特别是那种有一个白色顶部的输入法,如:百度输入法),如图:

js解决软键盘遮挡输入框的问题分享

问题解决

我们只需要在输入框聚焦之后,开启一个定时器,执行$(‘body').scrollTop(1000000),这样由于整个body滚动到了最下面,输入框自然就看见了,具体请查看以下示例

示例源码

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> 
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> 
  <title>demo</title> 
  <script src="../js/jquery-1.11.3.min.js"></script>
  <style> 
    * { 
      margin: 0;  
      padding: 0; 
    } 
    body, html { 
      width: 100%; 
      height: 100%;
    } 
    .bottom {
      position: absolute;
      left: 0;
      bottom: 0;
      width: 100%;
      font-size: 0;
    }
    input {
      font-size: 14px;
      box-sizing: border-box;
      width: 50%;
      height: 50px;
      line-height: 50px;
    }
  </style> 
</head> 
<body>
  <div class="bottom">
    <input class="aInput" type="text" placeholder="ios聚焦后会被输入法遮挡" />
    <input class="bInput" type="text" placeholder="ios聚焦后不会被输入法遮挡" />
  </div>
</body> 
<script> 
  $(function() {
    // 解决输入法遮挡
    var timer = null;
    $('.bInput').on('focus', function() {
      clearInterval(timer);
      var index = 0;
      timer = setInterval(function() {
        if(index>5) {
          $('body').scrollTop(1000000);
          clearInterval(timer);
        }
        index++;
      }, 50)
    })
  });

</script> 
</html>

以上这篇js解决软键盘遮挡输入框的问题分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery动画1.加载指示器
Aug 24 Javascript
jQuery点击弹出下拉菜单的小例子
Aug 01 Javascript
jquery的选择器的使用技巧之如何选择input框
Sep 22 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
如何将网页表格内容导入excel
Feb 18 Javascript
Javascript实现的Map集合工具类完整实例
Jul 31 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
Aug 08 Javascript
vue服务端渲染的实例代码
Aug 28 Javascript
使用vue中的v-for遍历二维数组的方法
Mar 07 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 Javascript
使用Vant完成Dialog弹框案例
Nov 11 Javascript
Angular2实现组件交互的方法分析
Dec 19 #Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
Dec 19 #Javascript
jquery自定义显示消息数量
Dec 19 #jQuery
基于Vue开发数字输入框组件
Dec 19 #Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 #jQuery
从setTimeout看js函数执行过程
Dec 19 #Javascript
mongoose更新对象的两种方法示例比较
Dec 19 #Javascript
You might like
PHP采集腾讯微博的实现代码
2012/01/19 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
JSQL  一个 web DB 的封装
2010/05/05 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
centos下更新Python版本的步骤
2013/02/12 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
什么是python的必选参数
2020/06/21 Python
python 实现IP子网计算
2021/02/18 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
vue路由实现登录拦截
2021/03/24 Vue.js
超市国庆节促销方案
2014/02/20 职场文书
卫生巾广告词
2014/03/18 职场文书
反邪教标语
2014/06/23 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
医学生自荐信范文
2015/03/05 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python