關鍵樣條

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>

用法說明

<control-point> [ ; <control-point> ]* ;?
預設值 None
可動畫的

屬性值是分號分隔的控制點描述列表。

<control-point>

每個控制點描述是一組四個值: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

另見