js 移動端之監聽軟鍵盤彈出收起


js 移動端關於頁面布局,如果底部有position:fixed的盒子,又有input,當軟鍵盤彈出收起都會影響頁面布局。這時候Android可以監聽resize事件,代碼如下,而ios沒有相關事件。

var winHeight = $(window).height();   //獲取當前頁面高度
$(window).resize(function(){
   var thisHeight=$(this).height();
    if(winHeight - thisHeight >50){
         //當軟鍵盤彈出,在這里面操作

    }else{
        //當軟鍵盤收起,在此處操作
    }
});
/**
 * 解決ios鍵盤彈出遮擋input
 */
function iosInput() {
    if(isIos()){
        $('.chart-footer').css('position','absolute');//解決第三方軟鍵盤喚起時底部input輸入框被遮擋問題
        var bfscrolltop = document.body.scrollTop;//獲取軟鍵盤喚起前瀏覽器滾動部分的高度
        $(".chart-input").focus(function(){//在這里‘input.inputframe’是我的底部輸入欄的輸入框,當它獲取焦點時觸發事件
            interval = setInterval(function(){//設置一個計時器,時間設置與軟鍵盤彈出所需時間相近
                document.body.scrollTop = document.body.scrollHeight;//獲取焦點后將瀏覽器內所有內容高度賦給瀏覽器滾動部分高度
            },100)
        }).blur(function(){//設定輸入框失去焦點時的事件
            clearInterval(interval);//清除計時器
            document.body.scrollTop = bfscrolltop;//將軟鍵盤喚起前的瀏覽器滾動部分高度重新賦給改變后的高度
        });
    }
}
iosInput();

 


免責聲明!

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



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