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 相关文章推荐
JavaScript 编写匿名函数的几种方法
Feb 21 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
Eclipse引入jquery报错如何解决
Dec 01 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
angular.js分页代码的实例
Jul 27 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
JS基于正则表达式实现的密码强度验证功能示例
Sep 21 Javascript
javaScript中的空值和假值
Dec 18 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
vue中destroyed方法的使用说明
Jul 21 Javascript
关于JavaScript轮播图的实现
Nov 20 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
php生成短网址示例
2014/05/05 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
javascript 对象的定义方法
2007/01/10 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
python学习教程之使用py2exe打包
2017/09/24 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
Python扩展内置类型详解
2018/03/26 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
大学生赌博检讨书
2014/09/22 职场文书
公民代理授权委托书
2014/09/24 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书