如何在Vue中使用窗口大小?(如何检测软键盘?)
2022-06-21 00:00:00
vue.js
在我的带有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>
相关文章