1. 程式人生 > >移動端因軟鍵盤的原因,固定在頁面底部的按鈕被彈起解決方案

移動端因軟鍵盤的原因,固定在頁面底部的按鈕被彈起解決方案

問題描述:移動端,當需要輸入內容時,軟鍵盤彈出往往會導致固定在底部的按鈕、導航欄等被彈起。

解決思路:
1.當鍵盤彈起時隱藏掉按鈕,鍵盤隱藏時按鈕顯示
2.監測鍵盤是否彈起(瀏覽器頁面是否發生變化)

程式碼

1、定義一個底部按鈕

<div class="returnbtn" v-show="isOriginHei" :class="{active: canSubmit}" v-on:click="sendSubmit()">提交</div>

2、設定預設顯示和兩個螢幕的初始值(此處定義在vue的data中)

    isOriginHei: true,
    screenHeight: document.documentElement.clientHeight,        //此處也可能是其他獲取方法
    originHeight: document.documentElement.clientHeight,

3、在mounted裡面掛載檢測瀏覽器變化

    mounted() {
        let self = this;
        window.onresize = function() {
            return (function(){
                self.screenHeight = document.documentElement.clientHeight;
            })()
        }
    }

4、在watch中監測螢幕變化

    screenHeight (val) {
        if(this.originHeight > val + 100) {        //加100為了相容華為的返回鍵
            this.isOriginHei = false;
        }else{
            this.isOriginHei = true;
        }
    }

作者:rookie.he(kuke_kuke)
部落格連結:http://blog.csdn.net/qq_33599109