Skip to content

2. 重绘重排; 更改opacity5到0.5会引发重绘重排吗 ?

一般不会重排,但是会重绘; 使用translateZ0提升到合成层,触发合成层优化,就不会触发重绘;

更改width会引发重绘重排吗?

会触发重排,然后导致重绘;

更改keyframes会引发重绘重排吗?

如果是更改几何属性,比如width这种,每一帧都会触发; 如果是transform或者opacity这类,都会优化到合成层;

更改transform会引发重绘重排吗?

合成层,不触发

更改translateY会引发重绘重排吗?

合成层,不触发

  • 重绘:元素的样式改变,但是不影响布局;
  • 重排:元素的布局改变,会引起重绘;

合成层优化

浏览器渲染引擎通过分层机制提升性能的核心策略;

  • 浏览器将页面分为多个合成层
  • 每个层可以独立进行光栅化

优势:

  • 减少了重绘范围,只重绘该层内容
  • GPU加速,避开主线程

触发属性: 给高频变化的属性添加will-change,以启动合成层优化;

css
/* 推荐写法 */
.animate-element {
  will-change: transform;
  transform: translateZ(0);
}
本站访客数 人次 本站总访问量