为什么有时候人们用translate来改变位置而不是定位?

Posted wangxi01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么有时候人们用translate来改变位置而不是定位?相关的知识,希望对你有一定的参考价值。

translate()是transform的一个值。

改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)(复合是什么,我也不懂,没听说过,有知道的朋友可以在留言区告诉我)。

transform使浏览器为元素创建一个 GPU 图层

translate改变位置时,元素依然会占据其原始空间

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

改变绝对定位会使用到 CPU。

因此translate()更高效,可以缩短平滑动画的绘制时间。

 

以上是关于为什么有时候人们用translate来改变位置而不是定位?的主要内容,如果未能解决你的问题,请参考以下文章

显示软键盘而不改变视图位置

$translate改变语言没有立即执行翻译

更改 SCNNode 位置而不更改方向

变形--位移 translate()

0064 2D转换综合写法以及顺序问题:translate rotate scale

javascript根据数字改变位置