360瀏覽器文本框獲得焦點(diǎn)后被android軟鍵盤遮罩該怎么辦
場(chǎng)景是這樣的,站點(diǎn)上篩選按鈕點(diǎn)擊后彈出層(fixed),當(dāng)輸入框獲取焦點(diǎn)以后彈出系統(tǒng)自帶的軟鍵盤,在android上十款瀏覽器挨個(gè)測(cè)試比對(duì),發(fā)現(xiàn)在360瀏覽器彈出鍵盤以后獲取焦點(diǎn)的文本框被軟鍵盤覆蓋了。
截圖如下
(未獲取軟鍵盤焦點(diǎn)的情況)
(chrome瀏覽器調(diào)起軟鍵盤的情況)
(360瀏覽器調(diào)起軟鍵盤情況)
那么問(wèn)題來(lái)了,瀏覽器的軟鍵盤顯示出來(lái)又哪幾種情況呢?英文 中文(網(wǎng)上找的)
經(jīng)過(guò)簡(jiǎn)單的了解,大概分析了一下軟鍵盤在瀏覽器上彈出應(yīng)該包含軟鍵盤占用主activity空間,讓主activity重新布局 和 不調(diào)整窗口大小浮在上面 這兩種方式(哈哈這是我yy的)
360應(yīng)該是使用后者,其他的也許是使用前者。
既然問(wèn)題出現(xiàn)了,那就要想辦法解決,于是經(jīng)過(guò)簡(jiǎn)單的推敲,基本上可以得出(存在不占用主窗口空間的軟鍵盤技術(shù)) 1、當(dāng)input獲取焦點(diǎn)的時(shí)候,2、軟鍵盤會(huì)彈出,3、fixed的層需要向上移動(dòng)一下,4、成功輸入;5、當(dāng)input blur或是鍵盤點(diǎn)擊回車以后,fixed還原位置(這里要慶幸360沒(méi)有默認(rèn)帶旋轉(zhuǎn)屏幕跟隨轉(zhuǎn)動(dòng),不然還要麻煩一點(diǎn))
既然分析完畢就要寫(xiě)代碼了
1.添加識(shí)別瀏覽器代碼
var isSpecialBrowser = navigator.userAgent.match(/360 Aphone.*\(([\d.]+)\)$/i)//360等部分軟鍵盤采用的是軟鍵盤不占用主窗口空間造成,吸底的 input獲取焦點(diǎn)的時(shí)候被遮罩
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', -); } });
好了,問(wèn)題解決了
但是會(huì)又問(wèn)題,就是主動(dòng)點(diǎn)擊鍵盤收起按鈕時(shí)沒(méi)辦法獲取任何keycode和對(duì)應(yīng)的事件,因此這里會(huì)有問(wèn)題。
文本框獲得焦點(diǎn)、失去焦點(diǎn)調(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>無(wú)標(biāo)題頁(yè)</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實(shí)現(xiàn)遮罩層(蒙板)效果
- Android PopupWindow實(shí)現(xiàn)遮罩層效果
- Android使用popUpWindow帶遮罩層的彈出框
- Android之淘寶商品列表長(zhǎng)按遮罩效果的實(shí)現(xiàn)
- Android頁(yè)面中引導(dǎo)蒙層的使用方法詳解
- Android實(shí)現(xiàn)新手引導(dǎo)半透明蒙層效果
- Android自定義ViewGroup實(shí)現(xiàn)豎向引導(dǎo)界面
- Android GuideView實(shí)現(xiàn)首次登陸引導(dǎo)
- 一分鐘實(shí)現(xiàn)Android遮罩引導(dǎo)視圖
相關(guān)文章
Android實(shí)現(xiàn)簡(jiǎn)易的音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)易的音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05Android實(shí)現(xiàn)移動(dòng)小球和CircularReveal頁(yè)面切換動(dòng)畫(huà)實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于利用Android如何實(shí)現(xiàn)移動(dòng)的小球和CircularReveal頁(yè)面切換動(dòng)畫(huà)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-09-09RecyclerView使用payload實(shí)現(xiàn)局部刷新
這篇文章主要為大家詳細(xì)介紹了RecyclerView使用payload實(shí)現(xiàn)局部刷新,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Android使用glide加載gif動(dòng)畫(huà)設(shè)置播放次數(shù)
這篇文章主要為大家詳細(xì)介紹了Android使用glide加載gif動(dòng)畫(huà)設(shè)置播放次數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11OKhttp攔截器實(shí)現(xiàn)實(shí)踐環(huán)節(jié)源碼解析
這篇文章主要為大家介紹了OKhttp攔截器實(shí)現(xiàn)實(shí)踐環(huán)節(jié)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Android實(shí)現(xiàn)GridView中ImageView動(dòng)態(tài)變換的方法
這篇文章主要介紹了Android實(shí)現(xiàn)GridView中ImageView動(dòng)態(tài)變換的方法,以實(shí)例形式較為詳細(xì)的分析了GridView中ImageView動(dòng)態(tài)變換的頁(yè)面布局及功能實(shí)現(xiàn)相關(guān)技巧,需要的朋友可以參考下2015-10-10Android使用Handler實(shí)現(xiàn)定時(shí)器與倒計(jì)時(shí)器功能
Handler的最常見(jiàn)應(yīng)用場(chǎng)景之一便是通過(guò)Handler在子線程中間接更新UI。這篇文章主要介紹了Android使用Handler實(shí)現(xiàn)定時(shí)器與倒計(jì)時(shí)器功能,需要的朋友可以參考下2018-02-02