【问题标题】:SVG anime to pathSVG动画到路径
【发布时间】:2022-01-03 08:23:35
【问题描述】:

试图让云在 SVG 的路径上移动,但是当我做所有事情时,云从视图部分移开......不知道为什么会发生这种情况。

[这是在代码笔上][1]

enter code here[1]:https://codepen.io/paul-santi/pen/MWvMaKp

【问题讨论】:

  • 请正确格式化您的帖子

标签: svg anime.js


【解决方案1】:

导致问题的是转换。您的云和云路径上的变换都将云推离您想要的动画位置。

修复

首先,当云跟随路径时,云从原点 (0,0) 的任何 X、Y 偏移都将包括在内。所以你需要做的第一件事是移动你的云,使它们位于 (0,0)。

我为解决这个问题所做的快速修复是通过在#Cloued2 中插入一个组元素来添加一个变换回原点


Updated codepen: https://codepen.io/PaulLeBeau/pen/WNEVbrO

    <g id="cloued2" transform="translate(0 0)">
      <g transform="translate(-1270,-307)">
        <circle id="Ellipse_1-2" data-name="Ellipse 1"  r="36" transform="translate(1198 325)" fill="#fff"/>
        <circle id="Ellipse_2-2" data-name="Ellipse 2"  r="36" transform="translate(1234 325)" fill="#fff"/>
        <circle id="Ellipse_3-2" data-name="Ellipse 3"  r="36" transform="translate(1270 325)" fill="#fff"/>
        <circle id="Ellipse_4-2" data-name="Ellipse 4" r="36" transform="translate(1306 325)" fill="#fff"/>
        <circle id="Ellipse_5-2" data-name="Ellipse 5"  r="36" transform="translate(1342 325)" fill="#fff"/>
        <circle id="Ellipse_6-2" data-name="Ellipse 6"  r="36" transform="translate(1306 289)" fill="#fff"/>
        <circle id="Ellipse_7-2" data-name="Ellipse 7" r="36" transform="translate(1270 289)" fill="#fff"/>
        <circle id="Ellipse_8-2" data-name="Ellipse 8"  r="36" transform="translate(1234 289)" fill="#fff"/>
      </g>
    </g>

下一个问题是#Path_Cloued2 的transform。 Anime.js 将读取路径定义,但不会考虑转换。所以云会在页面的其他地方设置动画。

为了解决这个问题,我删除了transform 并调整了路径定义以进行补偿。

旧

<path id="Path_cloued2" data-name="Path cloued2" d="M2323,184l712-25-328,75Z" transform="translate(-2069 114)" fill="none" stroke="#707070" stroke-width="1"/>

新的

<path id="Path_cloued2" data-name="Path cloued2" d="M254,298 l 712-25 -328,75Z" fill="none" stroke="#707070" stroke-width="1"/>

现在云跟随路径。它仍然会做一些奇怪的事情,但我怀疑这只是调整动画配置的问题。 IE。放慢速度,将缓动函数改为线性。

【讨论】:

  • 嘿,保罗,谢谢你的帮助。我只有一个问题要问您,因为我对您如何调整路径定义以进行补偿感到困惑?就像你只是把数字弄乱了直到看起来正确吗?
  • 没有。转换只是一个简单的翻译,路径使用相对路径命令。所以我所要做的就是将变换 X 和 Y 坐标添加到初始(非相对)移动 (M) 命令的坐标中。 2323 - 2069 = 254 和 184 + 114 = 298。虽然我刚刚意识到我打错了并且在我的第二条路径 sn-p 中输入了错误的 Y 坐标。很抱歉有任何混淆。我现在已经修好了。
猜你喜欢
  • 2016-02-14
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 2021-04-18
  • 2020-03-14
  • 2015-04-10
  • 2017-03-30
相关资源
最近更新 更多