当前位置: 首页 > 面试题库 >

给定路径的SVG填充动画

陈博容
2023-03-14
问题内容

我正在尝试从左到右制作箭头动画,箭头路径的代码如下所示:

<svg id="svg_circle" width="100%" height="100%" viewBox = '0 0 450 400'>

    <g transform = "translate(0,0)">

      <path class="path" stroke="#F0F0F0" fill="#fff" stroke-width="1" opacity="1" d="m34.97813,21.70979l-33.55223,0.47088l-0.0394,-13.57138l34.2665,-0.47295l-0.0208,-7.14282l14.50618,14.42226l-14.95643,15.04345l-0.20382,-8.74944z" id="svg_1">

          <animate id="project_anim1" attributeName="fill" from="#fff" to="#4DAF4C" begin="1s" dur="1s" fill="freeze" repeatCount="1"></animate>

      </path>

    </g>

</svg>

以上是我的箭头的svg路径内容。

有人可以帮助我如何从左到右填充路径。等待快速响应


问题答案:

您可以通过仅对中的<stop>s设置动画来完成此操作<linear gradient>

<svg id="svg_circle" width="100%" height="100%" viewBox = '0 0 450 400'>



  <defs>

    <linearGradient id="left-to-right">

      <stop offset="0" stop-color="#4DAF4C">

        <animate dur="2s" attributeName="offset" fill="freeze" from="0" to="1" />

      </stop>

      <stop offset="0" stop-color="#fff">

        <animate dur="2s" attributeName="offset" fill="freeze" from="0" to="1" />

      </stop>



    </linearGradient>

  </defs>



  <path class="path" stroke="#F0F0F0" fill="url(#left-to-right)" stroke-width="1" opacity="1" d="m34.97813,21.70979l-33.55223,0.47088l-0.0394,-13.57138l34.2665,-0.47295l-0.0208,-7.14282l14.50618,14.42226l-14.95643,15.04345l-0.20382,-8.74944z" id="svg_1" />

</svg>

这是如何工作的,我们有一个线性梯度表示从绿色到白色的突然变化。所述<animation>元件移动位置,即突然变化,从左边的箭头(偏移=
0)到右侧的(偏移量=“1”)。

请注意,SVG <animate>元素在IE中不起作用。如果需要支持IE,则需要使用FakeSmile库或使用其他方法(例如JS动画库)。



 类似资料:
  • 我有一个箭头头的路径,我想做一个颜色过渡动画,从左到右。 我已经为线和箭头做了这件事,但它似乎不是同步的。我希望线和箭头都过渡颜色无缝。 CSS

  • 问题内容: 是否可以为SVG 元素设置a ? 例如,如果设置了element ,则CSS样式有效,但都不起作用。 问题答案: 您可以通过将背景变成图案来实现: 根据您的图像调整宽度和高度,然后从这样的路径中引用它:

  • 我有一个SVG元素:

  • 我维护了一个用flash编写的绘图工具,该工具将其数据保存为荧光笔工具的一系列点,这些点描述了一条粗大的、填充的徒手/点对点线的轮廓。例如,如果用户画了一条水平线,路径将是从左到右的点序列,然后是向下10像素的线,相同的点序列反向回到原点下方10px,那么路径就关闭了 另一个工具通过将json点列表转换为svg路径来周期性地光栅化Flash的数据。路径命令类似于“M 123,456l 1,2 3,

  • 在对路径进行填充时,发现渐变的填充其实是按照一个类似矩形框中进行填充的,因此在路径的末端,会变为红色。有什么方法可以让渐变的填充是按照路径的方向进行填充,也就是路径末端是蓝色。

  • SVG 路径 - <path> <path> 元素用于定义一个路径。 下面的命令可用于路径数据: M = moveto L = lineto H = horizontal lineto V = vertical lineto C = curveto S = smooth curveto Q = quadratic Bézier curve T = smooth quadratic Bézier c