最近碰到Android微信內置瀏覽H5頁面,因為其中的文本輸入框(input)放置在靠近頁面的中下方,點擊文本框以后,則輸入框會被彈出的手機輸入法鍵盤遮蓋住。
找到一段js代碼直接解決之,點擊時強制滾動之,好像也解決了在Android瀏覽器下瀏覽的同樣問題。
1 if(/Android [4-6]/.test(navigator.appVersion)) { 2 window.addEventListener("resize", function() { 3 if(document.activeElement.tagName=="INPUT" || document.activeElement.tagName=="TEXTAREA") { 4 window.setTimeout(function() { 5 document.activeElement.scrollIntoViewIfNeeded(); 6 },0); 7 } 8 }) 9 }
補充一段代碼:對於某些頁面,由於頁面設計底部可能有工具欄(比如某些頁面固定了一個footer在底部),這時候雖然系統計算出來不需要滾動,但彈出輸入法時,底部的工具欄卻移動上去正好遮蓋住輸入框(常見於輸入框正好在頁面中部的情況)。
這時候可以通過判斷屏幕高度變化來隱藏該底部工具欄。
<script type="text/javascript"> document.write( '<style>#footer{visibility:hidden}@media(min-height:' + ($( window ).height() - 10) + 'px){#footer{visibility:visible}}</style>' ); </script>