1.7 KiB
1.7 KiB
title | localeTitle |
---|---|
Will Change | 将改变 |
将改变
will-change属性允许您告诉浏览器对元素进行哪些操作以优化它。
.container {
will-change: transform;
}
上面的属性will-change用于类.container
,在这种情况下,元素的转换可能会也可能不会发生。
但是,使用此属性会产生一个有趣的副作用。
如果我们应用于transform: translateZ (0)
元素,该元素将创建一个新的叠加上下文,并且在某些浏览器中,它还将为其自己的渲染流添加一个层,这将为我们提供性能提升,我们正在实现。
因此,使用will-change: transform
,浏览器将创建一个新的叠加上下文,无论我们是否将变换应用于元素。
需要注意的关键是,仅当属性还创建新的叠加上下文时,更改才会创建新的叠加上下文。由于transform属性会创建新的叠加上下文,因此will-change: transform
也会创建一个新的叠加上下文。
如果您使用了will-change: display
,则不会创建新的叠加上下文,因为display属性的值不会创建新的叠加上下文。
让我们看另一个例子: opacity
。值为1的不透明度不会创建新的叠加上下文,但会创建较低的值(例如,0.9)。虽然会改变:不透明度在任何情况下都会创建一个新的叠加上下文。