html5 虛擬鍵盤彈出擋住底部的輸入框解決方案

問題描述:ios

  咱們使用 h5 作移動網站開發時,若是文本框在頁面的下方,當輸入信息彈出的軟鍵盤會將輸入框擋住(Android 會有這個問題,IOS會自動將整個頁面上移),IOS中軟鍵盤關閉後,頁面上移的部分不會自動下移,體驗不是很好。網站

解決方案:spa

  能夠藉助元素的 scrollIntoView() 方法。scrollIntoView()能夠在全部的HTML元素上調用。調用該方法後,則被調用的元素會出如今視圖窗口中,而且元素會和視圖窗口的頂部齊平。code

代碼實例:blog

  問題: 頁面中有一個textarea 在頁面的底部,軟鍵盤彈出時會遮擋住textare. ip

  解決思路:
開發

      1. 在textarea focus時調用scrollIntoView()方法io

      2. 軟鍵盤關閉後,即獲取到textarea blur 時將頁面滾動到頂部(解決ios 頁面不自動下移的問題)網站開發

      3. 代碼以下:function

     <div style="height:800px"></div>
        <textarea onfocus="focusBlur('focus')" onblur="focusBlur('blur')"></textarea>
        <div style="height:300px"></div>
        <script>
            function focusBlur(state){
                if(state == 'focus'){
                   // document.querySelector('textarea').scrollIntoView();
                }else{
                    window.scroll(0,0); //頁面返回到頂部
                }
            }
        </script>
相關文章
相關標籤/搜索