Vue中解決鍵盤遮擋底部輸入框

<template>
    <div v-resize="onResize">
        <v-footer class="" app inset :absolute='keybord' padless :style="{height: messageInputHeight}" v-bind:class="keybord?'mb-5':''">
            <v-text-field ref="searchbar" class="ma-1 elevation-0 searchbar" v-model="messtext" solo flat hide-details clearable
             label="" append-icon="send" @click:append='sendMessage()' @keyup.enter="sendMessage()"></v-text-field>
        </v-footer>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                keybord: false,
                windowSize: {
                    x: 0,
                    y: 0,
                },
            }
        },
        methods: {
            onResize(){
                if(this.windowSize.y-window.innerHeight>60){
                    this.keybord=true
                }else{
                    this.keybord=false
                }
            }
        },
        mounted() {
            //緩存初始高度
            this.windowSize = { x: window.innerWidth, y: window.innerHeight }
            this.onResize()
        },
    }
</script>

<style>
</style>

部分控件使用了Vuetify,但解決辦法與框架無關(guān),如果整體輸入框任然有一部分被鍵盤遮擋(應(yīng)為默認(rèn)控件邊界在鍵盤上方即可),可使用vue的動態(tài)綁定class,給控件一個底部外邊距即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容