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.jqzoom.js使用实例附放大镜图标
Jun 19 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
Aug 06 Javascript
论Bootstrap3和Foundation5网格系统的异同
May 16 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 Javascript
关于axios返回空对象的问题解决
Apr 04 Javascript
AngularJS实现动态添加Option的方法
May 17 Javascript
详解vue.js 开发环境搭建最简单攻略
Jun 12 Javascript
详解Vue Elememt-UI构建管理后台
Feb 27 Javascript
关于TypeScript模块导入的那些事
Jun 12 Javascript
使用canvas实现一个vue弹幕组件功能
Nov 30 Javascript
Element Card 卡片的具体使用
Jul 26 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php 魔术函数使用说明
2010/02/21 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python mysqldb连接数据库
2009/03/16 Python
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python 容器总结整理
2017/04/04 Python
python3中函数参数的四种简单用法
2018/07/09 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
对Python中画图时候的线类型详解
2019/07/07 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
策划创业计划书
2014/02/06 职场文书
关于读书的演讲稿
2014/05/07 职场文书
计生工作先进事迹
2014/08/15 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
《植树问题》教学反思
2016/03/03 职场文书