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 Autocomplete 结合asp.net使用要点
Oct 29 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
Feb 03 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
React styled-components设置组件属性的方法
Aug 07 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 Javascript
js实现div色块拖动录制
Jan 16 Javascript
vue addRoutes路由动态加载操作
Aug 04 Javascript
解决vue动态下拉菜单 有数据未反应的问题
Aug 06 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中is_file()函数使用指南
2015/05/08 PHP
php强制下载文件函数
2016/08/24 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
客户端静态页面玩分页
2006/06/26 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
python实现获取Ip归属地等信息
2016/08/27 Python
pandas string转dataframe的方法
2018/04/11 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Python的pygame安装教程详解
2020/02/10 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
html5唤起app的方法
2017/11/30 HTML / CSS
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
毕业生学校推荐信范文
2014/05/21 职场文书
本科生求职信
2014/06/17 职场文书
525心理健康活动总结
2015/05/08 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS