这个问题已在 SO 和其他地方多次报告,但我找不到任何有效的解决方案。
如果你有一个固定位置的 div 和一个固定的附加背景,在某些特定条件下,Google Chrome 上的渲染是错误的(在 Firefox 和 IE11 上测试没有问题)。
我制作了下面的codepen来说明问题: https ://codepen.io/EricRondo/pen/PaENpe
如您所见,仅在 Chrome 上,背景并没有覆盖所有 div,应该是 400px 高度。
效果取决于“顶部”位置。这里当 top 增加 50px 时会发生什么: https ://codepen.io/EricRondo/pen/WydwMW
我添加了另一个具有定义高度的 div,因为没有滚动实际上根本没有问题。很奇怪 !
我遇到了许多解决方案,例如:
-webkit-transform: translateZ(0);
但是,虽然它在“某些”情况下确实有效,包括上面的代码笔,但在我的情况下却不起作用,这涉及更多的容器和 JS 代码。但问题的根源本质上是相同的:仅当固定定位的 div 具有 background-attachment:fixed 时才会发生。
有问题的完整网站在这里: http ://reims.dev-indelebil.com/
Firefox 没问题:干净流畅的视差效果,但 Chrome 会发生这种奇怪的行为。当在容器上添加 translateZ(0) 或任何其他“GPU 技巧”时,它会变得非常迟钝/生涩,与例外行为相去甚远。
提前感谢您提供任何建议或解决方案!