如何使用突变观察者对特定的样式属性更改做出反应
How to react to a specific style attribute change with mutation observers?
我一直在尝试使用突变观察者,到目前为止,我可以应用相关函数来对添加、删除元素等做出反应。现在我想知道,是否有一种方法可以针对特定样式属性中的特定更改?我知道我可以观察属性的变化,但我就是不知道如何观察特定的属性修改。例如,如果#childDiv的z-index值更改为5678,则修改parentDiv的样式以便显示它。
<div id="parentDiv" style="display:none;">
<div id="childDiv" style="z-index:1234;">
MyDiv
</div>
</div>
根据文档使用attributeFilter
数组并列出HTML属性,'style'
在这里:
var observer = new MutationObserver(styleChangedCallback);
observer.observe(document.getElementById('childDiv'), {
attributes: true,
attributeFilter: ['style'],
});
var oldIndex = document.getElementById('childDiv').style.zIndex;
function styleChangedCallback(mutations) {
var newIndex = mutations[0].target.style.zIndex;
if (newIndex !== oldIndex) {
console.log('new:', , 'old:', oldIndex);
}
}
对不起。React是没有突变的。如果你需要听一些元素的变化(例如风格)。您可以使用componentDidUpdate
并从@refs.parentDiv
获得元素(在此之前在渲染函数<div id="parentDiv" ref="parentDiv" style="display:none;">
中设置ref),然后检查样式并在新渲染之前设置z-Index值。
相关文章:
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 通过jQuery添加ng样式属性,angular不更新
- CSS样式属性留空
- d3.js圆的半径是否可以由样式属性指定
- 如何在不使用Page.Theme属性的情况下设置页面样式和主题
- 如何通过JQuery修改样式属性
- 获得'无法读取null的属性样式'
- 无法读取Null的属性样式
- 未捕获的类型错误:无法读取 null(索引):110 的属性“样式”
- 我一直收到未捕获的引用错误:未定义下拉菜单和未捕获的类型错误:无法读取 null 的属性“样式”
- 无法读取未定义的属性“样式”
- 重新打开程序函数返回类型错误“无法读取 null 的属性'样式'”
- MGWT ScrollPanel.scrollTo(0, y) 导致无法读取未定义的属性“样式”
- 如何使用 jQuery 删除多个标签的属性样式
- 为什么在 JavaScript 中无法读取 null 的属性“样式”
- 为什么我得到'无法读取属性样式为null ';错误
- 在Kineticjs中添加图像的属性样式
- 未捕获的类型错误:不能设置属性样式的#<它只有一个getter
- 无法读取属性样式,不同页面上出现错误
- 无法读取null的属性样式