微信公眾號頁面的web頁面鍵盤彈起問題


今天開發的過程中,遇到了一個小問題,是這樣的,  UI的設計稿中有個底部的按鈕是相對於屏幕定位的,但是這個頁面還有一個輸入框;具體情況請看下圖:

  這就造成了當我們輸入框獲取焦點的時候,鍵盤彈起,下面的“確認出售”按鈕會跑到鍵盤的上面去,見截圖:

所以這個就有錯誤了。去網上找了解決方案,但是他是在監測輸入框是否有焦點,但是手機在收起鍵盤的時候,輸入框仍是有焦點的。這個時候這個方法就不能成功了。但是他的思想是正確的,就是在鍵盤彈起的時候,隱藏下面的按鈕,等到鍵盤收起的時候在顯示,這樣的話就不會出現上圖的情況了。

  所以就需要改變監測的方式,最直接最簡單的方式就是檢測屏幕內容區域的大小改變。當進入這個頁面的時候先確定一個大小的值,我們命名為“h”,當內容區域改變的時候監測這個最新區域的大小,如果小於了,我們就認為現在是小鍵盤彈起了,就讓下面的按鈕隱藏,當鍵盤下去的時候,最新的區域大小是等於原來的大小的,就讓底部的按鈕顯示;這樣就能比較完美的解決這個問題。廢話不多說,下面直接上代碼:

 

1 var h = document.body.scrollHeight;
2 window.onresize = function(){
3     if (document.body.scrollHeight < h) {
4         document.getElementsByClassName("sure_sell")[0].style.display = "none";//我的下面的按鈕的class名為sure_sell
5     }else{
6         document.getElementsByClassName("sure_sell")[0].style.display = "block";
7     }
8 };

注意,這段代碼是針對安卓微信公眾號的web頁面的。對於ios不會觸發onresize的這個函數的,當然,ios也不存在上述的問題,貌似是因為ios鍵盤彈起的時候,是整個頁面往上滑,整個頁面的布局不會變。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM