0

我正在尝试使用 CSS will-change 属性而不是 translateZ(0) hack。

我了解需要在元素更改之前应用该属性。但我怀疑它是否需要在变化时也应用。

我有兴趣知道是否需要在元素转换之前和期间应用该属性,或者仅在之前应用该属性

4

2 回答 2

2

will-change当相应的 CSS 属性正在更改(或更改)时,您不需要应用。

的主要目标will-change是帮助浏览器“提前”应用一些对渲染器来说代价高昂的更改(例如,为将更改其的元素创建新的堆叠上下文,opacity而不是在不透明度开始更改时动态创建它)。如果更改已经发生,则不再需要进行此类预优化。

于 2016-12-06T12:50:10.777 回答
0

will-change 属性的真正目的是警告浏览器所选元素将在未来的进程中发生变化,因此浏览器可以提前设置适当的优化。

某些属性在 will-change 中指定时将不起作用,因为浏览器不会对大多数属性的更改执行任何特殊优化。不过,指定它们仍然是安全的;它根本没有效果。在这种情况下 (translate) will-change 会产生影响。

在更改发生之前和之后使用脚本代码打开和关闭 will-change 是一个很好的做法,这是您问题的答案。

参考:https ://kolosek.com/css-will-change/

于 2018-05-25T08:12:12.533 回答