解决移动端 ios 系统键盘遮挡的问题

亲测 ios 9 ,ios10 系统有效,其他请自行测试,建议通过判断系统类型来动态引入此脚本

var isIPHONE = navigator.userAgent.toUpperCase().indexOf("IPHONE")!= -1;
if(isIPHONE){
 // 元素失去焦点隐藏iphone的软键盘
 function objBlur(obj,time){
  var startTime=0,endTime=0,
  time = !time?30:time,
  docTouchend = function(event){
   endTime = new Date().getTime();
   if(event.target!= obj && (endTime - startTime <300)){
    setTimeout(function(){
     obj.blur();
     document.removeEventListener("touchend", docTouchend,false);
    },time);
   }
  };
  document.addEventListener("touchstart",function(){
   startTime = new Date().getTime();
  });
  document.addEventListener("touchend", docTouchend,false);
 }
 $("input").on("focus",function(){
  var id = this.id;
  var self = this;
  var H = window.innerHeight;
  var pos = getPosition(self);
  if(isIPHONE){
   var input = new objBlur(self);
   input=null;
  }
 });
 function getPosition(target) {
  var left = 0, top = 0;
  do {
   left += target.offsetLeft || 0;
   top += target.offsetTop || 0;
   target = target.offsetParent;
  } while(target);
  return {
   left: left,
   top: top
  };
 }
}

以上这篇解决移动端 ios 系统键盘遮挡的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持菜鸟教程(cainiaojc.com)。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#cainiaojc.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。