You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现SVG六边形旋转动画循环后自动切换方向?

如何让SVG旋转动画每次循环后切换方向?

你可以通过两种简单方式实现需求,以下是具体调整方案:

方法一:利用animation-direction: alternate(推荐)

这是最简洁的实现方式,无需修改关键帧,仅调整SVG的动画属性即可:

修改后的CSS代码:

@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

svg {
  animation: rotation 5s linear infinite alternate;
}
  • alternate属性会让动画在奇数次循环时按正方向播放(0°→360°),偶数次循环时反向播放(360°→0°),刚好满足每次循环后切换旋转方向的要求。
  • 保留linear属性确保旋转速度始终均匀,避免出现加速或减速的突兀感。

方法二:自定义双向旋转关键帧

如果你需要更直观地控制动画流程,可以修改关键帧,让单个动画周期包含正转和反转两个阶段:

修改后的CSS代码:

@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(360deg);
  }
  100% {
    transform: rotate(0deg);
  }
}

svg {
  animation: rotation 10s linear infinite;
}
  • 这里将动画时长调整为10秒,保证正转和反转各占5秒,和原方案的单方向旋转速度保持一致。
  • 关键帧先完成0°→360°的正转,再回到0°完成反转,循环播放后就会呈现正转、反转交替的效果。

两种方法都能实现目标效果,第一种更简洁高效,第二种适合需要精细控制动画阶段的场景。

内容的提问来源于stack exchange,提问作者Jameson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:07:43