关键时间

keyTimes 属性表示一个用于控制动画节奏的时间值列表。

列表中的每个时间点对应 values 属性列表中的一个值,并定义该值在动画中何时被使用。keyTimes 列表中的每个时间值都指定为一个介于 0 和 1(包含)之间的浮点数,表示动画元素持续时间内的比例偏移。

你可以将此属性与以下 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"
      repeatCount="indefinite"
      values="60; 110; 60; 10; 60"
      keyTimes="0; 0.25; 0.5; 0.75; 1" />
    <animate
      attributeName="cy"
      dur="4s"
      repeatCount="indefinite"
      values="10; 60; 110; 60; 10"
      keyTimes="0; 0.25; 0.5; 0.75; 1" />
  </circle>
</svg>

用法说明

<number> [ ; <number> ]* ;?
默认值 None
可动画的

keyTimes 属性的值是一个分号分隔的值列表。

keyTimes 列表中的值的数量必须与 values 列表中的值的数量完全相同。

每个连续的时间值必须大于或等于前一个时间值。

keyTimes 列表的语义取决于 插值 模式。

  • 对于线性插值和样条插值动画,列表中的第一个时间值必须是 0,最后一个时间值必须是 1。与每个值关联的关键时间点定义了该值何时被设置;值在关键时间点之间进行插值。
  • 对于离散动画,列表中的第一个时间值必须是 0。与每个值关联的时间点定义了该值何时被设置;动画函数使用该值直到列表中定义的下一个时间点。

如果 calcMode 属性设置为 paced,则会忽略 keyTimes 属性。

如果动画的持续时间不确定,任何 keyTimes 的指定都将被忽略。

  • Safari 问题:keyTimes 值应以分号分隔,前面不带空格,例如:keyTimes="0; 0.25; 0.5; 0.75; 1"

规范

规范
SVG 动画级别 2
# KeyTimesAttribute