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 相关文章推荐
iframe异步加载实现点击左边菜单加载右边内容实例讲解
Mar 04 Javascript
JS实现字体选色板实例代码
Nov 20 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
Aug 18 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
JS实现黑客帝国文字下落效果
Sep 01 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
浅谈jquery高级方法描述与应用
Oct 04 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
May 03 Javascript
详解webpack 如何集成第三方js库
Jun 29 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
Vue刷新修改页面中数据的方法
Sep 16 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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
jquery 选择器部分整理
2009/10/28 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
Python脚本实现集群检测和管理功能
2015/03/06 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
利用Python实现kNN算法的代码
2019/08/16 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
结婚司仪主持词
2015/06/29 职场文书
倡议书怎么写?
2019/04/11 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery