静态定位会大大降低性能(?)

Static positioning drastically slows performance (?)

当我突然偶然发现一些奇怪的渲染性能问题时,我正在构思一个想法。 我创建了一个 CodePen 来说明这个想法,它是一个导航元素,当它带有页脚 "collides" 时,它会从 position: fixed 变为 position: static。所以它看起来像是页脚将其向上推。

当位置模式改变时,没有错误的 JS(我试过没有 JS)会降低性能。这是我发现 CSS 属性 的原因 滚动时浏览器渲染更重。

在 IE10/Firefox 中它似乎工作正常,在 Chrome 中可以在 webinspectors fps-meter 中看到它的渲染要重得多。

虽然,这是我发现的最奇怪的;在 Safari 中,渲染速度很多BUT 添加一个带有 position: fixed 的额外元素使 Safari 渲染效果最好。 (Safari 版本 9.0.1 (11601.2.7.2))

带有额外的固定元素:http://codepen.io/slebbo/pen/GpPRQX

没有额外的固定元素:http://codepen.io/slebbo/pen/avPZxy

我的 google 技能对这个没有帮助,任何人都知道这种行为的答案。尤其是 Safari,这真的很时髦。

您应该是出现这些问题的硬件加速元素,特别是需要在滚动上重新绘制的固定元素。当您将背景图像设置为覆盖等时也是如此。

您可以使用: backface-visibility: hidden;

甚至: will-change: transform;