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

如何用CSS实现SVG线条旋转动画(复刻GIF效果)

复刻雨伞摆动GIF到SVG的实现方案

问题核心

要复刻的是雨伞两条支撑线左右摆动的动画,当前旋转线条时位置偏移,原因是默认旋转原点为元素左上角,而非线条的固定端点(伞柄连接处)。

第一步:修复旋转定位问题

通过设置transform-origin: 0 0,让线条绕自身起点(雨伞伞柄连接点)旋转,避免位置偏移:

svg {
  width: 200px;
}

svg [data-name="right-line"] {
  transform-origin: 0 0; /* 绕线条起点旋转 */
  transform: rotate(10deg);
}

第二步:实现摆动动画

定义关键帧动画模拟左右摆动,同时给两条线条添加错开的动画延迟,还原GIF的自然摆动节奏:

svg {
  width: 200px;
}

/* 定义左右摆动的关键帧 */
@keyframes swing {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}

/* 给两条线条统一应用动画与旋转原点 */
svg [data-name="right-line"],
svg line:not([data-name="right-line"]) {
  transform-origin: 0 0;
  animation: swing 1.2s ease-in-out infinite;
}

/* 左边线条延迟动画,让摆动节奏更贴近原GIF */
svg line:not([data-name="right-line"]) {
  animation-delay: 0.2s;
}

完整代码示例

<div>
  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 27.97 18.494">
    <g transform="translate(-.443292 0.304)">
      <g>
        <path d="M27.4,6.782c-7.609244-6.906331-19.218756-6.906331-26.828,0-.650213.586438-.76011,1.566067-.256,2.282l6.275,8.9c.444698.629922,1.252268.890007,1.981.638c1.738708-.602319,3.56592-.909558,5.406-.909h.007c1.84008-.000558,3.667292.306681,5.406.909.728522.251159,1.535402-.008297,1.981-.637l6.282-8.9c.50474-.715762.395717-1.69568-.254-2.283" transform="translate(.443-1.906)" fill="#9fbee8"/>
      <g>
        <line data-name="right-line" x1="0" y1="0" x2="7.313" y2="10.378" transform="translate(9.557 6.418001)" fill="none" stroke="#034ea2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
        <line x1="0" y1="0" x2="7.313" y2="10.378" transform="translate(4.983 6.418001)" fill="none" stroke="#034ea2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
        </g>
      </g>
    </g>
  </svg>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:51:01