导航


HTML

CSS

JavaScript

浏览器 & 网络

版本管理

框架

构建工具

TypeScript

性能优化

软实力

算法

UI、组件库

Node

冷门技能

CSS3 的动画了解多少?

css3 实现动画主要有 3 种方式

⭐️ 说一下 transform 的原理,先平移在旋转和先旋转再平移有什么区别

https://codepen.io/JingW/pen/dyqgqrv

⭐️ 所有 CSS3 的动画都能用 GPU 加速么 ?

在 CSS 中,只有 3D 转换、opacity 透明、filter 滤镜和添加了 will-change 属性的元素,浏览器才会开启硬件(GPU)加速。

为什么需要 GPU 硬件加速 ?

CPU 、GPU、硬件加速的关系?

CPU 和 GPU 都是处理单元

硬件加速(又称 GPU 加速)

CSS 的 animation、transform 和 transition 不会自动进行 GPU 加速,一般是由浏览器缓慢的软件渲染引擎执行。然而有些浏览器通过某些属性提供硬件加速,以获得更好的渲染性能

⭐️ 在 CSS 中哪些属性能触发硬件(GPU)加速

能触发硬件(GPU)加速的 CSS 属性

opacity不透明度就是少数可以适当加速的 CSS 属性之一,因为 GPU 可以很容易地操纵它。

will-change 用法及注意事项

CSS 属性 will-change 允许我们提前告知浏览器我们可能会对一个元素做出什么样的改变,从而使浏览器可以提前为元素做一些适当的优化。

注意事项:

开启 GPU 硬件加速可能触发的问题

硬件加速操作会创建一个所谓的合成渲染层(compositor layer),并上传到 GPU 进行合成。然而,强行创造一个图层并不能解决某些页面上的性能瓶颈。

经过-webkit-transform: transition3d/translateZ 开启 GPU 硬件加速以后,有些时候可能会致使浏览器频繁闪烁或抖动,能够尝试如下办法解决之:

-webkit-backface-visibility: hidden; /* 各种前缀都要考虑,此处省略 */
-webkit-perspective: 1000; /* 各种前缀都要考虑,此处省略 */