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 学习笔记(一)
Oct 13 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
JQquery的一些使用心得分享
Aug 01 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 Javascript
js图片轮播手动切换特效
Jan 12 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
详解微信小程序网络请求接口封装实例
May 02 Javascript
vue+koa2实现session、token登陆状态验证的示例
Aug 30 Javascript
利用d3.js实现蜂巢图表带动画效果
Sep 03 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 jQuery
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 json转换成数组形式代码分享
2014/11/10 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
浅谈python函数之作用域(python3.5)
2017/10/27 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
Python装饰器简单用法实例小结
2018/12/03 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
StubHub德国:购买和出售门票
2017/09/06 全球购物
销售演讲稿范文
2014/01/08 职场文书
简单的辞职信范文
2014/01/18 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
2015年采购员工作总结
2015/04/27 职场文书
养成教育主题班会
2015/08/13 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python
HTML基础详解(下)
2021/10/16 HTML / CSS
python可视化大屏库big_screen示例详解
2021/11/23 Python