ResizeObserver监听元素大小的变化

简介: 文章介绍了如何使用`ResizeObserver`API来监听一个DOM元素大小的变化,并提供了示例代码,包括如何开始监听、停止监听以及处理元素大小变化的回调函数。

window.resize不适用于dom的监听。

ResizeObserver

ResizeObserver 接口监视 Element 内容盒边框盒或者 SVGElement 边界尺寸的变化。

方法

ResizeObserver.disconnect()
取消特定观察者目标上所有对 Element 的监听。

ResizeObserver.observe()
开始对指定 Element 的监听。

ResizeObserver.unobserve()
结束对指定 Element 的监听。

在页面挂载的时候进行某个dom的监听

const theResizeObserver = new ResizeObserver(this.handleResize);

theResizeObserver.observe(
  document.getElementsByClassName("leftSpanRightBoix")[0]
);

在页面销毁的时候取消监听

theResizeObserver.unobserve(
  document.getElementsByClassName("leftSpanRightBoix")[0]
);

// 该元素触发的回调函数

 handleResize = (dom) => {
   
     // 我自己的处理逻辑
     // ...
    const height = dom[0].contentRect.height;
    console.log(height, "aaa=========");
    if (height > 40) {
   
      !this.state.isShowLine &&
        this.setState({
   
          isShowLine: true,
        });
    } else {
   
      if (this.state.isShowLine !== false) {
   
        this.setState({
   
          isShowLine: false,
        });
      }
    }
  };

在这里插入图片描述
参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Resize_Observer_API

目录
相关文章
|
4月前
|
JavaScript
vue监听dom元素的宽高变化和自定义指令监听dom元素的宽高变化
vue监听dom元素的宽高变化和自定义指令监听dom元素的宽高变化
478 0
|
4月前
|
小程序
在uniapp中监听globalData中的值变化
在uniapp中监听globalData中的值变化
246 0
|
4月前
|
JavaScript API
在Vue中,有哪些方法可以监听元素的状态变化?
在Vue中,有哪些方法可以监听元素的状态变化?
309 2
|
4月前
|
JavaScript
如何使用`watch`选项来监听特定属性的变化?
如何使用`watch`选项来监听特定属性的变化?
34 0
|
4月前
|
JavaScript
【sgDrag】自定义组件:基于Vue开发支持批量声明拖拽元素、被碰撞元素,拖拽全过程监听元素碰撞检测并返回拖拽原始元素、克隆元素及其getBoundingClientRect对象和碰撞接触元素数组。
【sgDrag】自定义组件:基于Vue开发支持批量声明拖拽元素、被碰撞元素,拖拽全过程监听元素碰撞检测并返回拖拽原始元素、克隆元素及其getBoundingClientRect对象和碰撞接触元素数组。
|
10月前
|
JavaScript
checkbox选中和取消,控制dom元素颜色变化
checkbox选中和取消,控制dom元素颜色变化
50 0
|
Web App开发 JavaScript API
监听Dom大小变化之ResizeObserver
在以前如果我们想要监听`dom`元素的大小变化,我们是没有对应的 api 可以使用的,在此之前我们都是只能监听浏览器窗口的大小变化,于是衍生出很多的 hack 方法,比如 resize 事件
947 0
|
JavaScript 开发者
使用 watch 监听文本框数据的变化|学习笔记
快速学习使用 watch 监听文本框数据的变化
1044 0
使用 watch 监听文本框数据的变化|学习笔记
|
JavaScript 开发者
使用watch监听文本框数据的变化|学习笔记
快速学习使用watch监听文本框数据的变化
116 0
使用watch监听文本框数据的变化|学习笔记
记一次无缝监听元素不可见时吸顶
记一次无缝监听元素不可见时吸顶
159 0