我试图在更改元素背景之后运行一些代码。我想在背景被视觉更改后运行代码,而不仅仅是内部更改。因此,我想要等待重新绘制。我尝试使用requestAnimationFrame(rAF)来实现这一目标,但似乎不是正确的方法,因为代码在背景颜色在视觉上更改之前执行(虽然只有几毫秒)。
我尝试使用以下代码来实现我的目标(但没有成功):
我尝试使用以下代码来实现我的目标(但没有成功):
requestAnimationFrame(() => {
document.getElementsByTagName("body")[0].style.backgroundColor =
"rgb(0, 75, 75)";
requestAnimationFrame(() => {
socket.emit("notify-black");
});
});
等待重绘的正确方法是什么?
alert
阻塞的代码片段。当超时回调运行时,背景应始终重新绘制(requestAnimationFrame
总是在重绘之前运行,setTimeout
回调必然在其后运行)。 - CertainPerformancealert
已经显示并且背景已经绘制,html2canvas 也是如此。我认为你的问题在其他地方,问题中的代码似乎按预期工作。 - CertainPerformance