我有一个元素,我称之为back
被另一个元素覆盖front
。
Back
在 CSS 中设置以在悬停时更改颜色。Front
设置为,当悬停时,1s
延迟后消失,并且元素上的鼠标指针Front
现在位于后元素上。
Front
height: 0
通过在 JavaScript 中设置消失。消失后Front
鼠标指针悬停在Back
浏览器上不会重新渲染悬停效果Back
,导致其颜色没有按应有的方式更改。
当我通过自然地Front
从 DOM 中删除来尝试相同的示例时,它可以正常工作。但是,我的应用程序需要我通过设置height: 0
.
您可以在以下示例中亲自尝试。您将看到一个红色框和一个蓝色框。红色是Front
,蓝色是Back
。当您将鼠标指针移至红色框时,红色框的颜色变为green
。当您将鼠标移到蓝色框上时,一秒钟后,它会消失。
该示例的重点是表明在蓝色框消失后,鼠标指针现在悬停在红色框上,因此应该变为green
。
在这个例子中,蓝色的盒子完全从 DOM 中移除,它的工作和预期的一样好。
但是,在此示例中,蓝色框将通过设置 删除height: 0
。green
消失后,红色元素直到我移动鼠标后才会变为。
有没有办法强制浏览器重新渲染?
该问题在 Google Chrome 和 Microsoft Edge 中仍然存在。火狐很好用。