360瀏覽器文本框獲得焦點后被android軟鍵盤遮罩該怎么辦
場景是這樣的,站點上篩選按鈕點擊后彈出層(fixed),當(dāng)輸入框獲取焦點以后彈出系統(tǒng)自帶的軟鍵盤,在android上十款瀏覽器挨個測試比對,發(fā)現(xiàn)在360瀏覽器彈出鍵盤以后獲取焦點的文本框被軟鍵盤覆蓋了。
截圖如下


(未獲取軟鍵盤焦點的情況)
(chrome瀏覽器調(diào)起軟鍵盤的情況)
(360瀏覽器調(diào)起軟鍵盤情況)
那么問題來了,瀏覽器的軟鍵盤顯示出來又哪幾種情況呢?英文 中文(網(wǎng)上找的)
經(jīng)過簡單的了解,大概分析了一下軟鍵盤在瀏覽器上彈出應(yīng)該包含軟鍵盤占用主activity空間,讓主activity重新布局 和 不調(diào)整窗口大小浮在上面 這兩種方式(哈哈這是我yy的)
360應(yīng)該是使用后者,其他的也許是使用前者。
既然問題出現(xiàn)了,那就要想辦法解決,于是經(jīng)過簡單的推敲,基本上可以得出(存在不占用主窗口空間的軟鍵盤技術(shù)) 1、當(dāng)input獲取焦點的時候,2、軟鍵盤會彈出,3、fixed的層需要向上移動一下,4、成功輸入;5、當(dāng)input blur或是鍵盤點擊回車以后,fixed還原位置(這里要慶幸360沒有默認(rèn)帶旋轉(zhuǎn)屏幕跟隨轉(zhuǎn)動,不然還要麻煩一點)
既然分析完畢就要寫代碼了
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和對應(yīng)的事件,因此這里會有問題。
文本框獲得焦點、失去焦點調(diào)用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>無標(biāo)題頁</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>
- Android自定義Dialog內(nèi)部透明、外部遮罩效果
- Android實現(xiàn)遮罩層(蒙板)效果
- Android PopupWindow實現(xiàn)遮罩層效果
- Android使用popUpWindow帶遮罩層的彈出框
- Android之淘寶商品列表長按遮罩效果的實現(xiàn)
- Android頁面中引導(dǎo)蒙層的使用方法詳解
- Android實現(xiàn)新手引導(dǎo)半透明蒙層效果
- Android自定義ViewGroup實現(xiàn)豎向引導(dǎo)界面
- Android GuideView實現(xiàn)首次登陸引導(dǎo)
- 一分鐘實現(xiàn)Android遮罩引導(dǎo)視圖
相關(guān)文章
adb wireless進(jìn)行Android手機(jī)調(diào)試詳解
這篇文章給大家講解了在Android手機(jī)上使用adb wireless進(jìn)行調(diào)試的步驟以及問題解決辦法,有需要的跟著學(xué)習(xí)下吧。2017-12-12
Android中的Retrofit+OkHttp+RxJava緩存架構(gòu)使用
Retrofit和OkHttp API以及JVM擴(kuò)展RxJava都是開源項目,大家可以輕松在GitHub上找到,下載和基本配置部分這里我們不作重點,主要還是來看一下Android中的Retrofit+OkHttp+RxJava緩存架構(gòu)使用:2016-06-06
android ContentResolver獲取手機(jī)電話號碼和短信內(nèi)容
這篇文章主要為大家詳細(xì)介紹了android ContentResolver獲取手機(jī)電話號碼、短信內(nèi)容,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Android編程實現(xiàn)定時發(fā)短信功能示例
這篇文章主要介紹了Android編程實現(xiàn)定時發(fā)短信功能,結(jié)合實例形式較為詳細(xì)的分析了Android定時發(fā)送短信功能的相關(guān)原理、實現(xiàn)方法與注意事項,需要的朋友可以參考下2017-09-09

