如何在Vue中使用窗口大小?(如何检测软键盘?) [英] How can I use window size in Vue? (How do I detect the soft keyboard?)

查看:24
本文介绍了如何在Vue中使用窗口大小?(如何检测软键盘?)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的带有Vue的移动Web应用程序中,我想在软键盘弹出时隐藏我的页脚。所以我有一个小函数来测试窗口高度和窗口宽度的比率...

showFooter(){
    return h / w > 1.2 || h > 560;
}

...并且我在数据中声明了window.innerHeight/window.innerWidth。

    data: { h: window.innerHeight, w: window.innerWidth }

问题是,当window.innerHeight更改时,我的h属性没有获得新值。如何观看window.innerHeight?

推荐答案

我相信还有更好的方法可以做到这一点,但在我想出办法之前,这个方法对您是有效的:

基本上,您只需要一个数据道具和一个观察者即可完成此操作。

new Vue({
    el: '#app',
    data() {
        return {
            windowHeight: window.innerHeight,
            txt: ''
        }
    },

    watch: {
        windowHeight(newHeight, oldHeight) {
            this.txt = `it changed to ${newHeight} from ${oldHeight}`;
        }
    },

    mounted() {
        this.$nextTick(() => {
            window.addEventListener('resize', this.onResize);
        })
    },

    beforeDestroy() { 
        window.removeEventListener('resize', this.onResize); 
    },

    methods: {  
        onResize() {
            this.windowHeight = window.innerHeight
        }
    }
});

这将输出更改

<div id="app">
    <br> Window height: {{ windowHeight }} <br/>
    {{ txt }}
</div>

这篇关于如何在Vue中使用窗口大小?(如何检测软键盘?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆