主要方法:
- 直接改变className,如果动态改变样式,则使用cssText(考虑没有优化的浏览器)
- 让要操作的元素进行”离线处理”,处理完后一起更新
- 不要经常访问会引起浏览器flush队列的属性,如果你确实要访问,利用缓存
- 让元素脱离动画流,减少回流的Render Tree的规模
具体操作:
- 用translate替代top改变
- 用opacity替代visibility(在独立图层下优化重绘)
- 不要一条一条地修改 DOM 的样式,预先定义好 class,然后修改 DOM 的 className
- 把 DOM 离线后修改,比如:先把 DOM 给 display:none (有一次 Reflow),然后你修改100次,然后再把它显示出来
- 不要把 DOM 结点的属性值放在一个循环里当成循环里的变量
- 不要使用 table 布局,可能很小的一个小改动会造成整个 table 的重新布局
- 动画实现的速度的选择
- 对于动画新建图层
- 启用 GPU 硬件加速(translateZ、translate3d);(合成多图层也有代价)
相关文章:
-
2021-09-19
-
2021-06-19
-
2022-12-23
-
2021-09-15
-
2021-08-30
-
2022-12-23
-
2021-08-25
-
2022-12-23
猜你喜欢
-
2022-12-23
-
2022-12-23
-
2021-10-08
-
2021-10-06
-
2022-12-23
-
2022-12-23
相关资源
-
下载
2023-02-12
-
下载
2023-03-20
-
下载
2021-06-05
-
下载
2021-11-02
-
下载
2023-02-14