zoukankan      html  css  js  c++  java
  • vue使用自定义指令监听元素宽、高变化

    这里监听元素宽度变化时为了,实时改变echarts的宽度,顺带把高度也监听一下:

    可以在全局注册自定义指令,也可以在组件内注册

    这里在组件内注册:

    directives:{
          resize: { // 指令的名称
            bind(el, binding) { // el为绑定的元素,binding为绑定给指令的对象
              console.log(el,"绑定",binding);
              let width = '', height = '';
              function isReize() {
                const style = document.defaultView.getComputedStyle(el);
                if (width !== style.width || height !== style.height) {
                  binding.value({style.width,height:style.height});  // 关键(这传入的是函数,所以执行此函数)
                }
                width = style.width;
                height = style.height;
              }
              el.__vueSetInterval__ = setInterval(isReize, 300);
            },
            unbind(el) {
              console.log(el,"解绑");
              clearInterval(el.__vueSetInterval__);
            }
          }
        },

    和data、mounted同级

    页面内绑定:

    <div id="overviewChart" v-resize="DomResize"></div>
    DomResize方法:
    DomResize(data){
            
            let {width,height} = data;
            console.log("",width,"height:",height,"   dom尺寸方式改变");
            if(this.myChart){
              this.myChart.resize()
            }
          },

  • 相关阅读:
    四十一.redis主从复制 RDB/AOF持久化 数据类型
    四十.创建Redis集群 管理集群
    三十九.NoSQL概述 部署Redis服务 、 部署LNMP+Redis
    三十八. 分库分表概述 配置mycat
    520D
    442C
    LA4788
    LA3276
    LA4122
    zoj3478
  • 原文地址:https://www.cnblogs.com/fqh123/p/14078873.html
Copyright © 2011-2022 走看看