h5開發安卓機型點擊輸入框調起輸入法,輸入框被鍵盤遮擋的解決方法


前言:

從以前的項目中找一個問題的解決方案,順帶找到了這個安卓機型調起輸入法,頁面沒有自動上滑導致輸入框被彈起的鍵盤遮擋的解決方案。這個問題只有安卓機型頁面中的輸入框處於底部(也就是底部鍵盤區域)的時候才會出現,近一年的項目中很少有表單輸入比較多的場景,所以一直都沒碰到這種問題。現在記錄下來,以后需要的時候好找些。

示例代碼:

公共方法封裝:

//調起輸入法,鍵盤自動上滑
function inputUp(ele){
  //安卓機型,自動上滑露出輸入框
  var u = navigator.userAgent;
  var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android終端
  if(isAndroid){
    $(ele).on('click', function () {
      var target = this;
      setTimeout(function(){
            target.scrollIntoViewIfNeeded();
       },100);
    });
    $(ele).on('focus', function () {
      //自動反彈 輸入法高度自適應
      var winHeight = $(window).height(); //獲取當前頁面高度
        $(window).resize(function() {
          var thisHeight = $(this).height();
          if (winHeight - thisHeight > 50) {
            //當軟鍵盤彈出,在這里面操作
            $('body').css('height', winHeight + 'px');
          } else {
            //當軟鍵盤收起,在此處操作
            $('body').css('height', '100%');
          }
        });
    });
  }
}

方法使用:

vue項目為例,需要在頁面渲染的時候進行調用,其中num為輸入文本框的類名。一般頁面頂部的文本框不需要處理,底部需要處理的所有的文本框都要調用這個方法。

1 mounted: function(){
2     common.inputUp('.num');
3 }

 


免責聲明!

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



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