使用CSS transition与transform: rotate()可实现无需JavaScript的平滑旋转动画。通过transition定义旋转过渡效果,transform: rotate()设置旋转角度,结合hover等状态触发,使元素在0度与目标角度间平滑切换。默认旋转中心为元素中心,可用transform-origin调整,如绕左上角或实现rotateY三维翻转。推荐使用transform和opacity以获得GPU加速,避免对布局属性添加过渡,并可通过will-change: transform提升性能。支持deg、rad、turn等单位,适用于图标、按钮等交互反馈场景,是轻量高效的动画方案。
CSS 的 transition 和 transform: rotate() 结合使用,可以轻松实现平滑的旋转动画效果。不需要 JavaSc
ript,仅靠几行 CSS 就能让元素在状态变化时优雅地旋转。
transform: rotate() 用于对元素进行二维旋转,单位是 deg(度)。例如 rotate(45deg) 表示顺时针旋转 45 度,rotate(-90deg) 表示逆时针旋转 90 度。
transition 控制属性变化时的过渡效果,比如让旋转过程缓慢进行而不是瞬间完成。
两者结合,可以让元素在 hover 或类名变化时,平滑地从一个旋转角度过渡到另一个角度。
以下是一个常见例子:鼠标悬停时,方块顺时针旋转 180 度。
.example {说明:
默认情况下,旋转中心是元素中心(50% 50%),可通过 transform-origin 修改。
例如让元素绕左上角旋转:
.example {也支持三维旋转,如绕 Y 轴翻转:
.flip {为了动画更流畅,注意以下几点:
基本上就这些。transition 搭配 transform rotate 是实现轻量级旋转动画最简单高效的方式,适合按钮、图标、加载提示等场景。不复杂但容易忽略细节,掌握后能提升界面交互质感。