目前是否有能够有效解析以下伪代码的API?
var myElement = document.querySelector("#foo");
if (myElement[mustBeRepainted]) {
// do stuff
}
也就是说,“脏”元素或下一次重绘的元素必须重新绘制或与当前的屏幕状态不同。
虽然我希望有myElement.isDirty
或paintQueue("myElement")
之类的东西,但我对它的实施方式并不太挑剔。
答案 0 :(得分:2)
如果您只想捕获属性更改而不是实际操作系统的绘制消息(例如WM_PAINT),您只需observe想要的dom元素:
function trackDomChanges(I_oHTMLObject) {
//create an observer instance
var observer = new MutationObserver(
function(mutations) {
mutations.forEach(
function(mutation) {
// play with mutation.attributeName, oldValue etc.
}
);
}
);
observer.observe(I_oHTMLObject, { attributes: true, childList: false, characterData: false });
}
trackDomChanges(myElement);