vue组件页面高度根据屏幕大小自适应

网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)

第一步: 将document.body.clientWidth赋值给data中自定义的变量
data:{ screenHeight: document.body.clientHeight }

第二步: 在页面mounted时,挂载window.onresize方法

mounted () {
                     const that = this
                     window.onresize = () => {
                                                                    return (() => {
                                                                                            window.screenHeight = document.body.clientHeight
                                                                                            that.screenHeight = window.screenHeight
                                                                                        })()
                                                          }
                 }
第三步: 监听screenWidth属性值的变化,打印并观察screenWidth发生变化的值

watch: {
               screenHeight (val) {
              // 为了避免频繁触发resize函数导致页面卡顿,使用定时器
                                                  if (!this.timer) {
                                                                             // 一旦监听到的screenWidth值改变,就将其重新赋给data里的screenWidth
                                                                             this.screenHeight = val
                                                                             this.timer = true
                                                                             let that = this
                                                                             setTimeout(function () {
                                                                                                                    // 打印screenWidth变化的值
                                                                                                                    console.log(that.screenHeight)
                                                                                                                    that.timer = false
                                                                                                                 }, 400)
                                                                        }
                                               }
         }
第四步: 在元素上赋值

<div :style="{ height: screenHeight + 'px' }">.... </div>

版权声明:本文为CSDN博主「云凝汐辰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39865491/java/article/details/88050596

posted @ 2020-05-09 15:52  仰望/不只是一种姿态  阅读(4072)  评论(0编辑  收藏  举报