el-table 根据屏幕大小动态设置max-height来自适应表格的最大高度出现滚动条

305 阅读1分钟

通过 获取window.innerHeight浏览器窗口的视口(viewport)高度(以像素为单位),然后减去除table的高度。

以Vue2为例:

  1. 定义一个属性,作为表格动态的高度,初始值为0

        data() {
            return {
                tableMaxHeight: 0
            }
        }
    
  2. 声明一个方法,用来修改tableMaxHeight的值

        methods: {
            setTableMaxHeight () {
                this.tableMaxHeight = window.innerHeight - 285
            }
        }
    
  3. 在组件加载完毕就是mounted生命周期函数中:

        mounted() {
            this.$nextTick(() => {
                // 页面加载完毕调用
                this.getTableMaxHeight()
                // 窗口大小变化调用
                window.addEventListener('resize', this.getTableMaxHeight)
            })
        }
    

    记得一定要加$nextTick,确保页面中的元素全部渲染完毕。

  4. 最后一步,别忘了卸载事件!

     beforeDestroy () {
        // 删除window绑定的resize事件
        window.removeEventListener('resize', this.getTableMaxHeight)
     }