Javascript监控元素样式变化

方法是使用MutationObserver观察者,可以监控元素的样式变化,并执行回调。

示例代码如下,

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="myElement">
        Hello!
    </div>
    <input type="button" value="变化样式!" onclick="changeStyle()">
    <script>
        // 选择要观察的目标节点
        const targetNode = document.getElementById('myElement');

        // 创建一个回调函数,当观察到变化时会调用
        const callback = (mutationsList, observer) => {
            for (let mutation of mutationsList) {
                if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
                    targetNode.innerHTML+="元素样式发生变化:", targetNode.style.color
                }
            }
        };
        //typescript的写法:
        //const callback: MutationCallback = (mutationsList: MutationRecord[], observer: MutationObserver) =>{}

        // 创建一个观察者实例并传入回调函数
        const observer = new MutationObserver(callback);

        // 配置观察选项
        const config = {
            attributes: true // 观察属性变化
        };

        // 开始观察目标节点
        observer.observe(targetNode, config);


        function changeStyle() {
            targetNode.style.color = 'red'; // 这将触发上面的回调
        }

    </script>
</body>
</html>
相关推荐
励志的小陈10 分钟前
贪吃蛇(C语言实现,API)
c语言·开发语言
Makoto_Kimur23 分钟前
java开发面试-AI Coding速成
java·开发语言
laowangpython25 分钟前
Gurobi求解器Matlab安装配置教程
开发语言·其他·matlab
wengqidaifeng29 分钟前
python启航:1.基础语法知识
开发语言·python
观北海32 分钟前
Windows 平台 Python 极简 ORB-SLAM3 Demo,从零实现实时视觉定位
开发语言·python·动态规划
猫3281 小时前
v-cloak
前端·javascript·vue.js
AC赳赳老秦1 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
旷世奇才李先生2 小时前
Vue 3\+Vite\+Pinia实战:企业级前端项目架构设计
前端·javascript·vue.js
Ulyanov2 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊2 小时前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享