keySplines

**keySplines** 属性定义了一组与 keyTimes 列表关联的 贝塞尔曲线 控制点,定义了一个控制间隔节奏的立方贝塞尔函数。

除非 calcMode 属性设置为 spline,否则将忽略此属性。

如果 keySplines 规范中存在任何错误(错误的值、过多或过少的值),则动画将不会发生。

您可以将此属性与以下 SVG 元素一起使用

示例

html
<svg viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg">
  <circle cx="60" cy="10" r="10">
    <animate
      attributeName="cx"
      dur="4s"
      calcMode="spline"
      repeatCount="indefinite"
      values="60; 110; 60; 10; 60"
      keyTimes="0; 0.25; 0.5; 0.75; 1"
      keySplines="0.5 0 0.5 1; 0.5 0 0.5 1; 0.5 0 0.5 1; 0.5 0 0.5 1" />
    <animate
      attributeName="cy"
      dur="4s"
      calcMode="spline"
      repeatCount="indefinite"
      values="10; 60; 110; 60; 10"
      keyTimes="0; 0.25; 0.5; 0.75; 1"
      keySplines="0.5 0 0.5 1; 0.5 0 0.5 1; 0.5 0 0.5 1; 0.5 0 0.5 1" />
  </circle>
</svg>

使用方法说明

<控制点> [ ; <控制点> ]* ;?
默认值
可动画

属性值是一个用分号分隔的控制点描述列表。

<控制点>

每个控制点描述是一组四个值:x1 y1 x2 y2,描述了一个时间段的贝塞尔控制点。定义关联段的 keyTimes 值是贝塞尔“锚点”,而 keySplines 值是控制点。因此,控制点集的数量必须比 keyTimes 少一个。

x1 y1 x2 y2 的值必须都在 0 到 1 的范围内。

Safari 问题

keyTimes 值应使用分号分隔,分号前没有空格,例如:keyTimes="0; 0.25; 0.5; 0.75; 1"

规范

规范
SVG 动画级别 2
# KeySplinesAttribute

另请参阅