360浏览器文本框获得焦点后被android软键盘遮罩该怎么办_Android

场景是这样的,站点上筛选按钮点击后弹出层(fixed),当输入框获取焦点以后弹出系统自带的软键盘,在android上十款浏览器挨个测试比对,发现在360浏览器弹出键盘以后获取焦点的文本框被软键盘覆盖了。

截图如下

 

(未获取软键盘焦点的情况)              

(chrome浏览器调起软键盘的情况)           

(360浏览器调起软键盘情况)

      那么问题来了,浏览器的软键盘显示出来又哪几种情况呢?英文   中文(网上找的)

      经过简单的了解,大概分析了一下软键盘在浏览器上弹出应该包含软键盘占用主activity空间,让主activity重新布局 和 不调整窗口大小浮在上面  这两种方式(哈哈这是我yy的)

360应该是使用后者,其他的也许是使用前者。

既然问题出现了,那就要想办法解决,于是经过简单的推敲,基本上可以得出(存在不占用主窗口空间的软键盘技术) 1、当input获取焦点的时候,2、软键盘会弹出,3、fixed的层需要向上移动一下,4、成功输入;5、当input blur或是键盘点击回车以后,fixed还原位置(这里要庆幸360没有默认带旋转屏幕跟随转动,不然还要麻烦一点)

既然分析完毕就要写代码了

1.添加识别浏览器代码

var isSpecialBrowser = navigator.userAgent.match(/360 Aphone.*\(([\d.]+)\)$/i)//360等部分软键盘采用的是软键盘不占用主窗口空间造成,吸底的 input获取焦点的时候被遮罩

2.处理事件

$(document)
 .on('keydown keyup', Element,function(ev) {
   if(code == && isSpecialBrowser) {
     DOM.css('bottom', -);
    }
   }
  })
  .on('focus', Element,function() {
   if(isSpecialBrowser) {
    DOM.css('bottom', -);
   }
  })
  .on('blur', Element,function() {
   if(isSpecialBrowser) {
    DOM.css('bottom', -);
   }
  });

好了,问题解决了

但是会又问题,就是主动点击键盘收起按钮时没办法获取任何keycode和对应的事件,因此这里会有问题。

文本框获得焦点、失去焦点调用JavaScript

代码如下:

<%@ Page Language="VB" CodeFile="focus.aspx.vb" Inherits="focus" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript">
function text1_onmouseover(it)
{
it.focus();
it.select();
it.style.backgroundColor="red";
}
function text1_onmouseout(it)
{
it.onblur;
it.style.backgroundColor="white";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" onmouseover="return text1_onmouseover(this);" onblur="text1_onmouseout(this)" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html> 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索360浏览器软键盘
android软键盘焦点
360浏览器软键盘开启、360浏览器软键盘、谷歌浏览器软键盘、微信 浏览器 遮罩层、微信 判断浏览器 遮罩,以便于您获取更多的相关知识。

时间: 2024-10-17 22:31:49

360浏览器文本框获得焦点后被android软键盘遮罩该怎么办_Android的相关文章

文本框 焦点-文本框失去焦点后,如果字符串为空重新获得焦点

问题描述 文本框失去焦点后,如果字符串为空重新获得焦点 页面中有一个文本框 加载该页面时让其获得焦点 $(function(){ $("#tmpName").focus(); }); //js函数 function checkExist() { var tmpName= $("#tmpName").val(); if(tmpName.length == 0){ //这里还需要让文本框获得焦点 $("#tmpName").focus(); }els

chrome-Chrome浏览器 文本框不自动记录

问题描述 Chrome浏览器 文本框不自动记录 就是当多次提交表单后,Chrome浏览器会记录这些内容,在文本框只要输入前几个相同的内容就会有提示,如何设置保证不显示这些提示呢? 解决方案 <input type="text" autocomplete="off"/> 关闭自动提示,设置autocomplete属性 解决方案二: 打开Chrome浏览器,设置页面,点击"高级设置" 将启用自动填充功能设为不勾选状态即可. 解决方案三:

系统-复制内容后,双击文本框 会自动复制并粘贴

问题描述 复制内容后,双击文本框 会自动复制并粘贴 本人遇到一个奇怪的问题,就是在A文本框中选中内容选择复制,然后在B文本框中进行粘贴.如果B文本框单击一次,然后选择粘贴,可粘贴,如果双击B文本框,再选择粘贴,就会将B文本框中内容进行复制粘贴.如果此时在C文本框中单机选择粘贴,则会显示B文本框中的内容.不是键盘鼠标的问题,也不是软件的问题,因为除了world,在网页上也出现此问题.用起来特别麻烦,所以求哪个大神帮帮忙,谢谢啊 解决方案 你电脑上安装什么其它软件了么?找一个可以光盘上运行的系统,比

Android学习笔记(17):文本框TextView类

TextView继承自View,用于显示文本.它有许多的子类,掌握其属性是很重要的.   TextView支持的XML属性及相关方法 XML属性 相关方法 说明 android:autoLink setAutoLinkMask(int) 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) android:autoText setKeyListener(KeyListener) 如果设置,将自动执行

Android UI设计系列之自定义TextView属性实现带下划线的文本框(4)_Android

在Android开发过程中,如果Android系统自带的属性不能满足我们日常开发的需求,那么就需要我们给系统控件添加额外的属性了.假如有个需求是实现带下划线的文本显示(下划线),如果不使用自定义属性的话实现起来也不太难(起码我认为的实现方式是有许多种的),今天就讲解一下如何使用自定义属性来实现上述带下划线的文本框吧.还好Android中自定义属性不是很复杂,也可以归纳为三步走吧. 老规矩,还是先贴出工程目录吧: 一.添加属性文件 在values文件夹中新建attrs.xml文件,在文件中新建属性

textarea自适应高度:CSS让Textarea文本框自适应浏览器宽度

  <title>文本框自适应浏览器宽度 - www.cxybl.com</title> <body> <textarea style="width:expression(document.body.clientWidth-20)">123</textarea> </body> 本文链接http://www.cxybl.com/html/wyzz/CSS/20130908/40080.html

浏览器上传组件文本框作限制解决一法

解决|浏览器|上传|文本框 [问题]: 浏览器上传组件由一个文本输入框+可以弹出选择文件框的按钮组成,(如图): [思路]: 近日在做页面时发觉有个缺陷难以解决:我想实现这样的效果,用户只能点击浏览选中文件,但是不可对已选中的文件路径或文件名进行修改(否则用户直接随意输入或修改字符串就能上传,但这样上传的是空的毫无意义的文件,所以要做一下限定),就是说这个文本输入框应该类似于disabled效果,但是对上传组件<input type="file">而言如果设置disable

360浏览器无法登陆账号 找不到登陆头像框该怎么办?

360浏览器在登陆360账号之后,可以同步收藏夹.便签.微博登陆等设置参数,如果找不到登陆按钮该怎么办呢?   1.通常情况下,打开360安全浏览器之后,在浏览器的左上角会有一个如下图所示的头像按钮 2.点击该按钮,会弹出登陆框,要求输入360的账户和密码,登陆之后,就可以使用360浏览器的在线同步功能了. 3.如果打开浏览器的时候,没有找到该按钮,需要在浏览器最上方的空白处点击右键 4.然后勾选[头像登陆框],之后左上角就又会出现头像登陆框了. 5.之后点击该按钮,输入用户名和密码,登陆360

手机浏览器-asp.net 注册时文本框中出现默认上一次登录的账号密码

问题描述 asp.net 注册时文本框中出现默认上一次登录的账号密码 20C 求大神指教,真的很急,asp.net 文本框中不设置autocomplete=""off""的话手机浏览器上会显默认的一些信息,比如注册的时候出现上一次登录的账号密码,设置autocomplete=""off""了的话出现不能输入的情况,求大神指教,小弟这里感恩跪谢了. 解决方案 是真的吗?uuuuuuu 解决方案二: 我做了一个手机网页,asp.n