我的网站上出现了动画,感觉很慢 经过一番调查后,我发现(通过DevTools时间线标签)问题是整个页面正在被重新绘制,而不仅仅是动画div。
我选中了“显示合成图层边框”选项,发现有时动画div位于另一个渲染图层中。
但我找不到一致的行为:
position:fixed
的div,marquee
等)。这些其他元素似乎与DOM树中的动画div完全无关,但显然会对动画期间页面的渲染产生影响。我发现了一些文章(1,2,3,4,5),这些文章提出了“强制”Chrome渲染的可能方法另一个渲染层中的元素,但大多数都是旧的(事情可能已经改变) 此外,它们通常不涉及元素如何相对于渲染层相互影响。
答案 0 :(得分:3)
好的,所以我终于找到了解决问题的方法。
marquee
等其他元素时才获得图层的原因是Chrome检测到“元素可能与其他合成元素重叠”。-webkit-backface-visibility: hidden
添加到此div的样式,确保overlay div始终获得自己的图层,我解决了这个问题。