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>
相关推荐
I***t7163 分钟前
Go环境搭建(vscode调试)
开发语言·vscode·golang
Mr_Xuhhh5 分钟前
pytest -- fixture
开发语言·python·pytest
未来之窗软件服务6 分钟前
幽冥大陆(三十八)P50酒店门锁SDK C#仙盟插件——东方仙盟筑基期
开发语言·单片机·c#·东方仙盟·东方仙盟sdk·东方仙盟vos智能浏览器
wzm—8 分钟前
C#获取每年节假日
开发语言·c#
●VON8 分钟前
基于 Electron 模拟鸿蒙设备硬件信息查询的可行性探索
javascript·学习·electron·openharmony
努力的ping9 分钟前
qt信号和槽
开发语言·qt
AGANCUDA10 分钟前
qt中vtk显示pcl的点云类
开发语言·qt
小马过河R11 分钟前
tRPC-GO 框架Helloworld实践初体验
开发语言·分布式·后端·架构·golang·gin·beego
GoodStudyAndDayDayUp11 分钟前
WIN11安装配置验证java\maven
java·开发语言·maven
fish_xk12 分钟前
用c++写控制台贪吃蛇
开发语言·c++