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实现Twitter的自动文字补齐特效
Nov 28 Javascript
js实现鼠标感应图片展示的方法
Feb 27 Javascript
JS中Location使用详解
May 12 Javascript
jQuery使用drag效果实现自由拖拽div
Jun 11 Javascript
jQuery验证插件validate使用详解
May 11 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
Easyui使用Dialog行内按钮布局的实例
Jul 27 Javascript
在小程序中使用canvas的方法示例
Sep 17 Javascript
JavaScript使用闭包模仿块级作用域操作示例
Jan 21 Javascript
浅谈vue3中effect与computed的亲密关系
Oct 10 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
Nov 09 Javascript
js+canvas实现纸牌游戏
Mar 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
python编写弹球游戏的实现代码
2018/03/12 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Python循环实现n的全排列功能
2019/09/16 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
详解django中Template语言
2020/02/22 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
保密普查工作实施方案
2014/02/25 职场文书
环保倡议书400字
2014/05/15 职场文书
倡导文明标语
2014/06/16 职场文书
庆六一活动总结
2014/08/29 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
python​格式化字符串
2022/04/20 Python