为什么有时候用translate来改变位置而不是定位
... 2025-7-10 小于 1 分钟
translate()是 transfrom 的一个值。改变 transfrom 或者 opacity 不会触发浏览器回流(reflow)或重绘(repaint),只会触发复合(compositions layers - 图层重组)。
translate 改变位置时,元素依旧会占据其原始空间,绝对定位不是。
改变绝对定位会触发回流,进而触发重绘和复合。
transfrom 使浏览器为元素创建一个 GPU。但改变绝对定位会使用到 GPU。因此 translate()更高效,可以缩短平滑动画的绘制时间。