IOS版微信收起軟鍵盤時(shí)出現(xiàn)空白

要做一個(gè)整屏的有背景色的登陸頁面,遇到的一些實(shí)現(xiàn)方法和踩過的坑記錄一下:

1.整屏有顏色的,高度不設(shè)置100%,給html,body設(shè)置背景色;

????如果設(shè)置高度100%,在部分IOS手機(jī)上,input框選中再失去焦點(diǎn)之后會(huì)沒辦法點(diǎn)擊,焦點(diǎn)在鍵盤彈起時(shí)的位置;

????如果設(shè)置固定值的高度,體驗(yàn)會(huì)不好,會(huì)上拉出現(xiàn)一節(jié)沒有內(nèi)容的頁面,也會(huì)出現(xiàn)軟鍵盤收起時(shí)出現(xiàn)白條。

2.底部有固定定位導(dǎo)航條的,軟鍵盤彈起會(huì)置于軟鍵盤上面,即固定定位相對(duì)于可視區(qū)域來定位的;

3.在IOS12+的V6.7.4+的微信上,會(huì)出現(xiàn)軟鍵盤收起時(shí)出現(xiàn)空白;

????下面針對(duì)這點(diǎn)作出的解決方法:

(1)用focus和blur來判斷鍵盤的彈出和收起狀態(tài);

(2)由于頁面中有多個(gè)input,所以需要定義幾個(gè)flag字段來判斷頁面是否沒有focus的input,然后才將頁面滾動(dòng)到頂部;

(3)對(duì)input遍歷綁定一下focus事件,給flag賦值為true;

(4)對(duì)input遍歷綁定一下blur事件,當(dāng)所有的input都處于blur狀態(tài),即flag都為false的時(shí)候,頁面滾動(dòng)到頂部;

(5)在blur事件中判斷flag值的時(shí)候,存在focus事件給flag賦值的異步問題,所以在blur判斷的時(shí)候加一個(gè)延遲定時(shí)器,再進(jìn)行判斷。

(6)這種通過全局設(shè)置變量的,綁定事件的時(shí)候需要用$("#...").on("click",function(){})這種方法,而不能在行內(nèi)通過onclick來設(shè)置,否則判斷全局變量值的時(shí)候會(huì)出現(xiàn)undefined的情況。

(7)代碼如下:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容