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

为什么说移动一个元素用Translate()比Pos:abs Top/Left好? 为什么说移动一个元素用Translate()比Pos:abs Top/Left好?整理来自:http://www.paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/Distraction: Pixel snapping 1. Animating with Top/Left: ht 阅读详情

人们选择使用translate来改变位置而不是定位(如absolute或relative),主要是因为translate具有一些特定的优势,特别是在性能和动画效果方面。以下是使用translate而不是定位的几个原因,并附带举例说明:

性能优势:

当使用translate时,浏览器不会触发页面的重新布局(reflow)或重绘(repaint)。相反,translate会触发合成(composition),这通常是一个更快的操作。这意味着当你移动一个元素时,浏览器不需要重新计算页面上其他元素的位置和大小,从而提高了性能。

例如,在移动设备上,页面滚动或动画的流畅性对于用户体验至关重要。使用translate可以确保这些操作更加流畅,因为浏览器不需要处理额外的重新布局或重绘。

动画效果:

translate非常适合用于创建平滑的动画效果。由于它不会触发重新布局或重绘,因此动画可以更加流畅,不会出现卡顿或延迟。

例如,假设你有一个菜单按钮,当用户点击它时,你希望它平滑地移动到屏幕的右侧。使用translate可以轻松实现这个效果,因为你可以通过改变transform: translate()的值来平滑地移动元素。

保持元素空间:

当使用translate移动一个元素时,该元素仍然会保留其在文档流中的原始空间。这意味着其他元素仍然会按照它们在文档流中的顺序排列,就好像被移动的元素没有移动一样。

例如,如果你有一个列表项(li)并使用translate将其移动到屏幕外,那么该列表项仍然会占据其在列表中的空间。这意味着其他列表项不会向上移动以填补空白,从而保持了列表的原始结构和布局。

综上所述,translate提供了一种高效、平滑且易于使用的方式来改变元素的位置,而无需触发页面的重新布局或重绘。这使得它在许多情况下成为比定位更好的选择。

 

为什么有时候⽤translate来改变位置⽽不是定位? 改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)。transform使浏览器为元素创建⼀个 GPU 图层,但改变绝对定位会使⽤到 CPU。⽽translate改变位置时,元素依然会占据其原始空间,绝对定位就不会发⽣这种情况。因此translate()更⾼效,可以缩短平滑动画的绘制时间。translate 是 transform 属性的⼀个值。⽽改变绝对定位会触发重新布局,进⽽触发重绘和复合。 阅读详情

相关推荐

点云欧式聚类快速了解

一种基于欧氏距离度量的聚类算法基于KD-Tree的近邻查询算法是加速欧式聚类算法的重要预处理方法KD-Tree是由二分搜索树演变而来的用于大规模高维度数据查找场景当中的索引结构,主要用于最近邻查找和近似最近邻查找。将整个空间划分为二叉树的形式,方便有效找到最近邻点云处理算法库PCL,是比较重要的,在后续会继续学习,然后发出更优质的文章。

xiaobaiwsc的博客 1724

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

translate是transform的一个值。改变transform或者opacity不会触发浏览器重新布局,或者重绘,只会触发复合。而改变绝对定位会触发回流,进而触发重绘,所以说在使用绝对定位时会触发重绘和回流操作。 并且transform使浏览器为元素创建一个GPU图层,但是改变绝对定位会使用到CPU,因此translate更加高效,可以缩短平滑动画的绘制时间。 而translate改变元素时,元素依然会占据原始位置,但是绝对定位不会发生这样的情况。 ...

weixin_47450807的博客 2117

为什么类型论是函数式编程的理想基础?

函数式编程(如Haskell、Scala、OCaml)以“函数为核心”“无副作用”“不可变数据”等特性著称,但它的“安全高效”并非凭空而来——背后的关键支撑是类型论。本文将聚焦“类型论如何支撑函数式编程”,从基础概念到具体案例,解释两者的本质联系。本文将按“故事引入→核心概念解释→关系拆解→原理+代码案例→实际应用→总结”的逻辑展开,用“乐高积木”“菜谱”等比喻贯穿全文,确保抽象理论可视化。类型论:程序的“接口规则手册”,定义类型和函数的约束;函数式编程。

AI天才研究院 698

为什么有时候用 translate 来改变位置, 而不是定位方式? (如top, left)

涉及知识: css + 性能优化 + 浏览器渲染原理

Luckyfif的博客 1522

ESP32天线阵列实现Wi-Fi空间成像与无直视定位

Wi-Fi信道状态信息(CSI)是OFDM系统中表征多径传播特性的基础物理层参数,其复数值包含幅度与相位,可反映无线环境的空间特征。基于CSI的射频感知技术,通过提取子载波级信道响应,结合阵列信号处理,实现到达角(AoA)估计与深度映射,本质是将通信链路重构为空间域传感器。该技术无需专用雷达硬件,具备低成本、被动式、隐私友好等工程优势,在室内定位、行为识别、仓储导航等场景具有广泛落地价值。本文聚焦ESP32平台,详解多芯片相位同步、CSI零拷贝采集、嵌入式MUSIC算法及信道图谱轻量化部署等关键实现。

weixin_30632267的博客 237

Mac Pro M2芯片成功安装麒麟银河高级服务器虚拟机

本人用的是1、Macbook m2pro芯片 16G+5123、安装homebrew、wegt、qemu。

vagatable_XX的博客 3306

css中制作动画为什么⼈们⽤translate来改变位置⽽不是定位?

1.translate()是transfrom的一个值。改变transfrom或者opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)。 2.改变绝对定位会触发重新布局,进而触发重绘和复合。 3.transfrom使浏览器为元素创建一个GPU。但改变绝对定位会使用到GPU。因此translate()更高效,可以缩短平滑动画的绘制时间。 4.translate改变位置时,元素依旧会占据其原始空间,绝对定位不是。 ...

imagine_tion的博客 923

【ARMv8 异常模型入门及渐进7 - GIC及安全中断介绍】

GIC-v3中,引入了支持2种安全状态(secure state),也就是对于中断,根据secure状态,分为安全中断和非安全中断。当然也可以只支持一种安全状态。这里的2种安全状态和1种安全状态,主要是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。

CodingCos的博客 2116

translate与绝对定位、相对定位的区别

在表现上看,使用 CSS3 translate 函数和绝对定位、相对定位属性加上 top、left 数值都可以使元素产生位移。实际上它们还是有不少的区别。 一:元素视图属性中的 offsetLeft 和 offsetTop 属性。 我们分别用相对定位和 translate 的方法来使元素产生位移: 1.使用相对定位使元素产生位移 *{ margin:0; padding:0; } ...

AndrewNeo 3589

【AI黑话日日新】什么是对比学习?

模型效果高度依赖大规模、高质量的人工标注数据。数据标注不仅成本高昂、周期漫长,在医疗、工业、小众垂类等场景中,甚至难以获取足量的标注样本,严重限制了模型的泛化能力与应用边界。自监督学习的出现,为解决这一问题提供了全新思路——无需人工标注标签,而是利用数据自身的结构与内在关联,构建自生成的监督信号完成模型预训练,再通过微调适配下游任务。在众多自监督学习方法中,对比学习(Contrastive Learning)

专注:太空算力、AI infra、异构调度、大模型成本工程 730

23、电器元件符号及封装大全(2025版本)

总计28类电器元件符号和封装。

XU157303764的博客 2661

【CSS面经】为什么有时候用 translate 来改变位置而不是 定位

使用position属性结合topleft等属性可以改变元素的位置。static:默认值,不改变元素的位置。relative:相对自身的初始位置进行偏移。absolute:相对于最近的定位父元素进行偏移。fixed:相对于浏览器窗口进行偏移。sticky:在一定滚动范围内相对其父元素定位。

lph159的博客 998

cesium 淹没分析

cesium淹没分析

God's asylum的博客 483

为什么有时候选择使用translate而不是用定位

为什么有时候选择使用translate而不是用定位

weixin_45799605的博客 243

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

为什么⽤translate⽽不是定位来改变位置

transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。 translate 是 transform 属性的⼀个值。改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会触发复合(compositions)。⽽改变绝对定位会触发重新布局,进⽽触发重绘和复合。transform使浏览器为元素创建⼀个 GPU 图层,但改变绝对定位会使⽤到 CPU。 因此translate()更⾼效,可以缩短平滑动画的绘制时间

qq_45715615的博客 368

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【css】translate元素仍占据原始位置特性分析

如何发现该特性的? 使用translateX平移元素后,再用offsetLeft获取元素距离body左侧的距离时,无法获取经translateX移动的部分(背景复现见以下代码),造成该结果的原因是translate属性不会改变元素原始位置。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=

chaomi_didi的博客 2698

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

浅谈translate属性与相对定位、绝对定位的区别

水平垂直居中的实现方式有多种,请见:http://blog.youkuaiyun.com/zhouziyu2011/article/details/53514416 在支持 CSS3 属性的现代浏览器当中,可以利用CSS3的translate属性实现水平垂直居中。 尤其是当子元素的width和height未知时,无法通过设置margin-left:-width/2和margin-top:-heig

筱葭的博客 1万+

绝对定位和translate的区别

绝对定位和translate的区别。绝对定位以设置了相对定位的父元素左上角为基准点进行偏移,translate是以设置了该属性的元素起始位置左上角为基准点。定位可能改变布局,而移动不会。在js中定位改变top等值变化,而移动不会改变top,只是位置变化了。 转载于:https://www.cnblogs.com/Lily-L/p/6660487.html...

POJIE19820106的博客 740

translate 改变控件的大小位置和旋转

重点:translate 能改变控件的大小位置和旋转 @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *head; - (IBAction)leftRotate:(id)sender; - (IBAction)up; - (IBAction)scaleSize:(id)sender; @en

smilebigdear的专栏 759

HTML-CSS小知识——translate基于自身移动、绝对定位基于父盒子

HTML-CSS小知识——translate是基于自身移动的、绝对定位基于父盒子例子 无论是在标准流情况还是绝对定位下,translate都是基于自身移动的;绝对定位基于父盒子 例子 代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> body>

jiongshaopeng的博客 2677

BProgress性能优化:GPU加速与translate3d定位技术揭秘

BProgress是一款轻量级、可定制的进度条组件,专为提升用户体验设计。本文将深入探讨BProgress如何通过GPU加速和translate3d定位技术实现流畅的进度动画效果,帮助开发者理解其性能优化的核心原理。 ## 为什么选择GPU加速? 在Web应用中,进度条的动画流畅度直接影响用户体验。传统的进度条动画往往依赖CPU进行计算和渲染,容易出现卡顿现象,尤其是在页面元素复杂或设备性能有

gitblog_00551的博客 664

CSS3中使用translate() 方法实现元素位置的移动

translate() 方法 通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数: 实例 div { transfor...

weixin_39037804的博客 4098

oracle函数translate,oracle中Translate()函数用法

一、语法:TRANSLATE(string,from_str,to_str)二、目的返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE是REPLACE所提供的功能的一个超集。如果from_str比 to_str长,那么在from_str中而不在to_str中的额外字符将从string中被删除,因为它们没有相应的替换字符。to_s...

weixin_35410644的博客 5763

详解transform:translate(-50%,-50%)意思

这种特定的用法(translate(-50%, -50%))经常和 position: absolute;left: 50%;将元素的左上角移到其容器的中心,然后再通过 translate(-50%, -50%) 向左和向上移动元素的一半宽度和一半高度,以此达到完全居中的效果。translate(-50%,-50%)是CSStransform属性的一种应用,用于元素的中心定位。在 translate(-50%, -50%) 中,元素将在水平和垂直方向上各自移动其自身宽度或高度的50%的距离。

yjg_773827531的专栏 2532
上一篇: vue3的proxy如何取代object和defineproperty
下一篇: 聚合函数AVG/SUM/MAX/MIN/COUNT/COUNT(*)例子
codedadi
博客等级 码龄3年 1330粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值