在修复横向滚动中 Flex 元素的抖动问题时,核心目标是**避免浏览器的重排(Reflow)和重绘(Repaint)**,并合理利用 GPU 加速。以下是具体的优化策略和代码实践:
1. 核心原则:只操作合成层属性
浏览器渲染管线中,layout(布局)-> paint(绘制)-> composite(合成)是最耗性能的链路。
- 禁止使用 :
left、right、top、bottom、margin、width、height等属性进行动画或频繁变更。这些属性会触发布局重排,导致页面抖动。 - 推荐使用 :
transform(如translateX、scale)和opacity。这两个属性仅触发合成层操作,由 GPU 处理,不触发布局计算,性能极高且流畅。