为什么有时候⽤translate来改变位置而不是定位

translate 是 transform 属性的⼀个值。改变transform或opacity不会触发浏览器重新布局(reflow)或重绘

(repaint),只会触发复合(compositions)。而改变绝对定位会触发重新布局,进而触发重绘和复合。

transform使浏览器为元素创建⼀个 GPU 图层,但改变绝对定位会使用到 CPU。 因此translate()更⾼效,可以缩

短平滑动画的绘制时间。 ⽽translate改变位置时,元素依然会占据其原始空间,绝对定位就不会发⽣这种情况。

发表评论

后才能评论