解决移动端 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 系统键盘遮挡的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • IOS开发中键盘输入屏幕上移的解决方法

    在IOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮.这样的话按钮的事件也就触发不了,最好的解决办法就是当输入这些信息的时候让整个屏幕上移一个键盘的位置,或者上移到指定的位置. 首先一般输入的话都用的是UITextField,所以要监听用户什么时候开始输入和什么时候结束输入,直接设置代理代理就行了,要遵受 UITextFieldDelegate协议. //遵循协议 @interface Vi

  • ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)

    在使用ionic开发IOS系统微信的时候会有一个苦恼的问题,填写表单的时候键盘会挡住输入框,其实并不算什么大问题,只要用户输入一个字就可以立刻看见输入框了. 可惜的是,有些客户是不讲理的,他才不管这个问题,反正就是不行,所以在一天睡觉的时候突然惊醒,想出来这个方案. 我就不仔细讲代码了,直接上图 angular.module('MyApp') .directive('focusInput', ['$ionicScrollDelegate', '$window', '$timeout', '$io

  • 解决移动端 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

  • iOS 防键盘遮挡的实例

    当我们在UITextField输入数据时经常弹出键盘遮挡界面,解决方法是:在弹出键盘时将整个UIVIew向上移动,在键盘消失时,UIVIew还原. 实例代码如下: @interface ViewController ()<UITextFieldDelegate> @property(nonatomic,strong)UITextField* tf; @end @implementation ViewController - (void)viewDidLoad { [super viewDidL

  • IOS NSNotification 键盘遮挡问题的解决办法

    IOS NSNotification 键盘遮挡问题的解决办法 从键盘通知中获得键盘尺寸 键盘尺寸存在于NSNotification中. 1:在AddDrinkViewController中添加keyboardDidShow和keyboardDidHide方法 2:在viewWillAppear中注册UIKeyboardDidshowNotification与UIKeyboardDidHideNotification. 3:在viewWillDisappear中取消对所有事件的订阅注册 4:在Ad

  • vue 解决移动端弹出键盘导致页面fixed布局错乱的问题

    话不多说,直接上问题图片 这里确认按钮是fixed布局 bottom:0 弹出键盘之后按钮被顶到了键盘上面 网上搜到的解决方案有两种, 一种是监听页面高度(我采用的这种) 一种是监听软键盘事件(ios和安卓实现方式不同,未采用) 下面是实现代码 data() { return { docmHeight: document.documentElement.clientHeight ||document.body.clientHeight, showHeight: document.document

  • Android WebView软键盘遮挡输入框方案详解

    目录 背景 纪实 方案 实现 总结 背景 笔者在使用 WebView 加载含有输入框的 H5 页面时,点击输入框后,输入框会被软键盘遮挡住,无法看到输入的内容,这很影响用户体验. 笔者想着这种业务场景比较常见,遂上网搜索一番,果不其然,有不少同志遇到这个问题,想来这个问题很好解决了.笔者一一尝试了同志们提供的解决方案,结果要不是没有作用,要不是效果不太满意,只好自己另辟蹊径了. 注:在笔者的业务场景中,App是全屏的,即没有顶部的系统栏,也没有底部的导航栏,所以笔者的解决方案,可能不适用于其他场

  • Android软键盘遮挡的四种完美解决方案

    一.问题概述 在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图: 输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示: 输入密码时输入框被系统键盘遮挡了,大大降低了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决? 二.简单解决方案 方法一 在你的activity中的oncreate中setContentView之前写上这个代码 getWindow().setSoftInputMode(WindowManage

  • vue实现移动端弹出键盘功能(防止页面fixed布局错乱)

    监听页面高度,当键盘弹出时,将按钮隐藏. data() { return { docmHeight: document.documentElement.clientHeight ||document.body.clientHeight, showHeight: document.documentElement.clientHeight ||document.body.clientHeight, hideshow:true //显示或者隐藏footer } }, watch: { //监听显示高度

  • 移动端固定输入框在底部会被键盘遮挡的解决方法(必看篇)

    由于公司需求,需要做一个实时对话的聊天功能.遇到各种小坑就不多说了,下面就记录一下遇到最坑的一个问题.. 页面布局写完后,在安卓和苹果手机测试了一下,问题来了!!!在安卓手机中布局完美展示(这很好),但在苹果手机下,经常点击输入框键盘会把输入框挡住. 如下图显示: 图一 图二 图三 (图一和图二都是有问题的,图三才是想要的效果.) 每次键盘遮挡住输入框之后,必须要手动向上滑动一下屏幕才显示出来,这体验效果就很不好了吧.然后自己就尝试了各种方法,什么定时器.绝对定位.固定定位.计算屏幕高度再定位等

  • IOS TextFiled与TextView 键盘的收起以及处理键盘遮挡

    IOS TextFiled与TextView 键盘的收起以及处理键盘遮挡 在iOS开发中,UITextFiled和UITextView是很常见的两个控件,当我们设置好这两个控件后,点击文字输入区域,系统会自动弹出键盘,但是如何收起键盘.点击哪里收起键盘,以及在iPhone4中键盘弹出后遮挡输入框怎么办呢? 这篇文章将带领大家解决: 1>点击其他空白区域收起键盘 2>点击键盘右下角的键收起键盘 3>处理键盘遮挡问题 一,点击其他空白区域收起键盘 - (void)viewDidLoad {

随机推荐