vue监听元素高度指令

js文件
复制代码
// 监听元素高度变化
let resize = {
  bind(el,binding) {
    let width = '', height = '';
    function isResize() {
      const style = document.defaultView.getComputedStyle(el);
      if (width !== style.width || height !== style.height) {
        binding.value();
      }
      width = style.width;
      height = style.height;
    }
    el._vueSetInterval_ = setInterval(isResize,100);
  },
  unbind(el) {
    clearInterval(el._vueSetInterval_);
  }
}
export default resize;
复制代码

引入

  import resize from '../../../../utils/myresize'

注册指令

  directives:{
    resize
  },

使用

<div class="dataCloud-data-filter" v-resize = "resetTableHeight"></div>
    resetTableHeight(){// 该元素高度变化时改变ivu-table-body高度
      if(document.getElementsByClassName('dataCloud-data-filter')[0]){
        this.clientHeight = document.getElementsByClassName('dataCloud-data-filter')[0].clientHeight
        document.getElementsByClassName('ivu-table-body')[0].style.height = `calc(100vh - ${this.clientHeight + 143}px)`
      }
    },    

 

posted @   从入门到入土  阅读(2964)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示