如何知道何时通过样式属性设置的CSS应用于DOM?

How to know when CSS set through style property is applied to the DOM?

提问人:Selman Hassen 提问时间:10/13/2023 更新时间:10/13/2023 访问量:53

问:

简单的问题,是否有事件或回调信号,表明通过 JS “style” 属性设置的 CSS 被应用并呈现到 DOM。 下面是一个示例。

const elem = document.querySelector("#abc");
elem.style.color = "red";
excuteAfterCSSAppliedToDOM(() => {
 // some code to excute
});
javascript css dom

评论


答:

3赞 T.J. Crowder 10/13/2023 #1

当代码执行赋值时,将立即同步应用该属性。它将在下次绘制页面时呈现在屏幕上。您可以在此事件发生之前使用 requestAnimationFrame 获取回调。对于不久之后的回调,请使用超时为零的嵌套或 a:requestAnimationFramesetTimeout

function excuteAfterCSSAppliedToDOM(callback) {
    requestAnimationFrame(() => requestAnimationFrame(() => callback()));
}

评论

0赞 Selman Hassen 10/13/2023
谢谢兄弟,从没想过再添加一个requestAnimationFrame