React 动态监听指定Dom元素变化

news/2024/7/15 18:28:58 标签: react.js, javascript, 前端

React 动态监听指定Dom元素变化

使用ResizeObserver对象来监听指定Dom元素(div…)的变化(width、height等等)。一般,浏览器不支持该监听对象,所以需要引入第三方库支持-resize-observer-polyfill

下载 resize-observer-polyfill

npm install resize-observer-polyfill

使用

import ResizeObserver from 'resize-observer-polyfill';

let myObserver = null

class xxx extends React.Coponent{
    render(){
        return (
        	<>
            	.....
            </>
        )
    }
    
    componentDidMount(){
        myObserver = new ResizeObserver((entries,observer) => {
            //console.log("entries",entries)
            for(let entrie of entries){
                let { width,height,left,top } = entrie
                console.log("width",width)
            }
        })
        
        //监听,可以多个
        myObserver.observe(document.getElementByClassName('xxxx')[0])
        //myObserver.observe(document.getElementByClassName('xxxx')[0])
    }
    
    componentWillUnmount(){
        //取消所有被ResizeObserver对象监听的节点
        myObserver.disconnect()
        //取消被ResizeObserver对象监听的指定dom元素监听
        //myObserver.unobserve(document.body)
    }
}

http://www.niftyadmin.cn/n/795322.html

相关文章

《你们都是魔鬼吗》第八次团队作业:第三天Alpha冲刺

《你们都是魔鬼吗》第八次团队作业&#xff1a;Alpha冲刺 项目内容这个作业属于哪个课程任课教师博客主页链接这个作业的要求在哪里作业链接地址团队名称你们都是魔鬼吗作业学习目标完成最后冲刺阶段的第三次博客前言 第三天冲刺会议 时间&#xff1a;2019.6.15 地点&#xff1…

Openshift 自建DDNS动态域名

Openshift 自建DDNS动态域名 某种情况下如openstack或者openshift/kubernetes软件部署过程由于需要标准的 域名系统&#xff08;DNS UPDATE&#xff09;RFC 2136中的动态更新功能, 但是现有的阿里云/华为云均不提供该规范,大多理由为安全问题. 此时需要自建DDNS解决此问题. 前提…

多表联查 on or 索引失效优化

多表联查 on or 索引失效优化 案例&#xff1a; select * from A a left join B b on a.id b.id or concat(a.id,_1) b.id left join C c on a.username b.username where a.sex 男优化&#xff1a; select a.字段, b.字段, ifnull(b.字段,b2.字段) as 字段,//a表对应…

第六次会议记录

一、时间 2019.5.28下午 二、地点 逸夫楼C424 三、人员 triple兔全体成员 四、会议内容 1. 分工完成ppt的各部分 2. 项目经理整合修改ppt&#xff0c;其他成员分工讨论完成详细设计文档 五、展示 转载于:https://www.cnblogs.com/Triple2/p/11040554.html

ssm框架 Of Mine

缺少事务配置&#xff0c;文件上传的配置和实例&#xff0c;明天把工具类整理一遍放入项目中供以后使用;参考网址&#xff1a;  spring整合quartz实现动态定时器&#xff08;上面的压缩包未涉及到&#xff09;&#xff0c;https://www.cnblogs.com/xrab/p/5850186.html   s…

python matplotlib 可视化操作实例

具体代码&#xff1a; # encoding: utf-8 # coding utf-8 import sys reload(sys) sys.setdefaultencoding(utf8) from matplotlib.font_manager import FontPropertiesimport numpy as np import matplotlib.pyplot as plt import matplotlib as mpl import matplotlib prin…

Mysql创建表空间,建用户,赋权限(为kettle做资源库)

为kettle使用资源库创建表空间 用户名:repo密码:Repo#123创建mysql表空间create DATABASE KETTLE DEFAULT CHARACTER set utf8 COLLATE utf8_general_ci;创建kettle资源库用户create user repo identified with mysql_native_password by Repo#123;给资源库用户赋权grant all o…

前端get请求如何发送List数据到后端,由后端List类型接收

前端get请求如何发送List数据到后端&#xff0c;由后端List类型接收 以React前端为例&#xff1a; 前端&#xff1a; let ids [1,2] //http为axios封装 http.get(路径,{ids:[...ids], })后端接口&#xff1a; GetMapping("/batchDelete") public RestResponse r…