当前位置: 首页 > article >正文

鼠标控制dom元素的大小。采用ResizeObserver——监听元素大小的变化

ResizeObserver是浏览器提供的API,用于替代window.resize事件监听元素尺寸变化,避免性能问题。它能精确观察到Element内容区域或SVGElement边框的变化。在示例中展示了如何在Vue应用中使用ResizeObserver监听div元素的尺寸,并实时更新其内容。同时,需要注意CSS的resize属性需设置为hidden以使功能生效。

这段代码的目的是使用 ResizeObserver 监听一个目标元素的大小变化,并根据目标元素的新尺寸调整 Cesium 画布 (canvas) 的大小。以下是代码的详细解释:

创建 ResizeObserver 实例 

 const resizeObserver = new ResizeObserver((entries) => {
      for (let entry of entries) {
        const target = entry.target;
        const width = target.clientWidth;
        const height = target.clientHeight;
        const cesiumCanvas = document.querySelector(
          `#${this.cesiumContainer} canvas`
        );
        // 设置 Cesium 画布的大小
        cesiumCanvas.style.width = width + "px";
        cesiumCanvas.style.height = height + "px";
      }
    });

 

  • ResizeObserver 是一个用于观察元素尺寸变化的 API。
  • 回调函数接收一个 entries 数组,每个 entry 代表一个被观察的目标元素及其变化。
  • entry.target 是发生变化的元素,clientWidth 和 clientHeight 提供该元素的当前宽度和高度。
  • document.querySelector 用于选择特定的 canvas 元素,并更新其 style 属性来设置宽度和高度,使其匹配目标元素的尺寸。

选择目标元素并开始观察 

    // 监听的目标元素
    const targetElement = document.getElementById(this.cesiumContainer);
    resizeObserver.observe(targetElement);
  • document.getElementById 根据 this.cesiumContainer 变量的值(应该是一个字符串)选择目标元素。
  • resizeObserver.observe(targetElement) 开始观察目标元素的大小变化。

补充:

ResizeObserver.disconnect()

取消特定观察者目标上所有对 Element 的监听。

ResizeObserver.observe()

开始对指定 Element 的监听。

ResizeObserver.unobserve()

结束对指定 Element 的监听。

 


http://www.kler.cn/a/291768.html

相关文章:

  • 抖音热门素材去哪找?优质抖音视频素材网站推荐!
  • 2411rust,异步函数
  • 几何合理的分片段感知的3D分子生成 FragGen - 评测
  • PySpark——Python与大数据
  • 【MQTT.fx 客户端接入 阿里云平台信息配置】
  • 【jvm】HotSpot中方法区的演进
  • uni-app全局引入js文件
  • .Net 6.0--通用帮助类--FileHelper
  • 打卡57天------图论(两种算法)
  • Leetcode刷题笔记:多数元素(摩尔投票算法最通俗的理解)
  • 设计模式学习-责任链模式
  • 结构型设计模式--装饰模式
  • 【Spring Boot-Spring Boot配置文件分类】
  • 前端面试题总结(HTML篇和CSS篇)
  • Spring Boot应用中集成与使用多数据源
  • 【ES常用查询操作】
  • Java项目: 基于SpringBoot+mysql高校心理教育辅导管理系统分前后台(含源码+数据库+开题报告+毕业论文)
  • sql日期函数
  • C++/Qt 多媒体(续五)
  • web前端基础笔记(六)
  • [数据集][目标检测]轮胎缺陷检测数据集VOC+YOLO格式2154张4类别
  • 2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整思路
  • 爬虫使用代理IP返回405:原因及解决方法
  • 第十八章 rust字符串String详解
  • btrace 开源!基于 Systrace 高性能 Trace 工具
  • SprinBoot+Vue二手回收微信小程序的设计与实现