结束
end
属性定义动画的结束值,该值可以约束活动持续时间。
您可以将此属性与以下 SVG 元素一起使用
用法说明
默认值 | 无 |
---|---|
值 | <end-value-list> |
可动画化 | 否 |
<end-value-list>
是一个用分号分隔的值列表。每个值可以是以下之一
<offset-value>
-
此值定义一个时钟值,该值表示相对于 SVG 文档开头的时间点(通常是
load
或DOMContentLoaded
事件)。负值有效。 <syncbase-value>
-
此值定义一个syncbase以及来自该syncbase的可选偏移量。元素的动画结束时间相对于另一个动画的开始或活动结束时间定义。
有效的 syncbase-value 包含对另一个动画元素的 ID 引用,后跟一个点,以及
begin
或end
来标识是与引用的动画元素的开始还是活动结束同步。可以附加一个在<offset-value>
中定义的可选偏移值。 <event-value>
-
此值定义一个事件以及一个可选的偏移量,该偏移量确定元素动画应结束的时间。动画结束时间相对于指定事件触发的时间定义。
有效的 event-value 包含一个元素 ID,后跟一个点以及该元素支持的事件之一。所有有效的事件(并非所有元素都支持)由 DOM 和 HTML 规范定义。这些是
focus
blur
focusin
focusout
activate
auxclick
click
dblclick
mousedown
mouseenter
mouseleave
mousemove
mouseout
mouseover
mouseup
wheel
beforeinput
input
keydown
keyup
compositionstart
compositionupdate
compositionend
load
unload
abort
error
select
resize
scroll
beginEvent
endEvent
repeatEvent
可以附加一个在
<offset-value>
中定义的可选偏移值。 <repeat-value>
-
此值定义一个限定的重复事件。元素动画结束时间相对于具有指定迭代值的重复事件引发的时间定义。
有效的重复值包含一个元素 ID,后跟一个点以及函数
repeat()
,该函数的参数是指定重复次数的整数值。可以附加一个在<offset-value>
中定义的可选偏移值。 <accessKey-value>
-
此值定义一个应触发动画结束的访问键。当用户按下指定的键时,元素动画将结束。
有效的 accessKey-value 包含函数
accessKey()
,其参数是要输入的字符。可以附加一个在<offset-value>
中定义的可选偏移值。 <wallclock-sync-value>
-
此值将动画结束时间定义为现实世界中的时钟时间。
有效的 wallclock-sync-value 包含函数
wallclock()
,其参数是时间值。时间语法基于ISO 8601中定义的语法。 indefinite
-
动画的结束将由
SVGAnimationElement.endElement()
方法调用确定。
示例
偏移量示例
<svg
width="120"
height="120"
viewBox="0 0 120 120"
xmlns="http://www.w3.org/2000/svg"
version="1.1">
<!-- animated rectangles -->
<rect x="10" y="35" height="15" width="0">
<animate
attributeType="XML"
attributeName="width"
to="100"
begin="0s"
end="8s"
fill="freeze" />
</rect>
<rect x="10" y="60" height="15" width="0">
<animate
attributeType="XML"
attributeName="width"
to="75"
begin="0s"
end="6s"
fill="freeze" />
</rect>
<rect x="10" y="85" height="15" width="0">
<animate
attributeType="XML"
attributeName="width"
to="50"
begin="0s"
end="4s"
fill="freeze" />
</rect>
<!-- grid -->
<text x="10" y="20" text-anchor="middle">0s</text>
<line x1="10" y1="25" x2="10" y2="105" stroke="grey" stroke-width=".5" />
<text x="35" y="20" text-anchor="middle">2s</text>
<line x1="35" y1="25" x2="35" y2="105" stroke="grey" stroke-width=".5" />
<text x="60" y="20" text-anchor="middle">4s</text>
<line x1="60" y1="25" x2="60" y2="105" stroke="grey" stroke-width=".5" />
<text x="85" y="20" text-anchor="middle">6s</text>
<line x1="85" y1="25" x2="85" y2="105" stroke="grey" stroke-width=".5" />
<text x="110" y="20" text-anchor="middle">8s</text>
<line x1="110" y1="25" x2="110" y2="105" stroke="grey" stroke-width=".5" />
<line x1="10" y1="30" x2="110" y2="30" stroke="grey" stroke-width=".5" />
<line x1="10" y1="105" x2="110" y2="105" stroke="grey" stroke-width=".5" />
</svg>
事件示例
<svg
width="120"
height="120"
viewBox="0 0 120 120"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- animated rectangle -->
<rect x="10" y="35" height="15" width="0">
<animate
attributeType="XML"
attributeName="width"
from="0"
to="100"
begin="0s"
end="endButton.click"
dur="8s"
repeatCount="indefinite"
fill="freeze" />
</rect>
<!-- trigger -->
<rect
id="endButton"
style="cursor:pointer;"
x="19.5"
y="62.5"
rx="5"
height="25"
width="80"
fill="#EFEFEF"
stroke="black"
stroke-width="1" />
<text x="60" y="80" text-anchor="middle" style="pointer-events:none;">
Click me.
</text>
<!-- grid -->
<text x="10" y="20" text-anchor="middle">0s</text>
<line x1="10" y1="25" x2="10" y2="55" stroke="grey" stroke-width=".5" />
<text x="35" y="20" text-anchor="middle">2s</text>
<line x1="35" y1="25" x2="35" y2="55" stroke="grey" stroke-width=".5" />
<text x="60" y="20" text-anchor="middle">4s</text>
<line x1="60" y1="25" x2="60" y2="55" stroke="grey" stroke-width=".5" />
<text x="85" y="20" text-anchor="middle">6s</text>
<line x1="85" y1="25" x2="85" y2="55" stroke="grey" stroke-width=".5" />
<text x="110" y="20" text-anchor="middle">8s</text>
<line x1="110" y1="25" x2="110" y2="55" stroke="grey" stroke-width=".5" />
<line x1="10" y1="30" x2="110" y2="30" stroke="grey" stroke-width=".5" />
<line x1="10" y1="55" x2="110" y2="55" stroke="grey" stroke-width=".5" />
</svg>
访问键示例
<svg
width="120"
height="120"
viewBox="0 0 120 120"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- animated rectangles -->
<rect x="10" y="35" height="15" width="0">
<animate
attributeType="XML"
attributeName="width"
from="0"
to="100"
begin="0s"
end="accessKey(e)"
dur="8s"
repeatCount="indefinite"
fill="freeze" />
</rect>
<!-- trigger -->
<text x="60" y="80" text-anchor="middle" style="pointer-events:none;">
Hit the "s" key
</text>
<!-- grid -->
<text x="10" y="20" text-anchor="middle">0s</text>
<line x1="10" y1="25" x2="10" y2="55" stroke="grey" stroke-width=".5" />
<text x="35" y="20" text-anchor="middle">2s</text>
<line x1="35" y1="25" x2="35" y2="55" stroke="grey" stroke-width=".5" />
<text x="60" y="20" text-anchor="middle">4s</text>
<line x1="60" y1="25" x2="60" y2="55" stroke="grey" stroke-width=".5" />
<text x="85" y="20" text-anchor="middle">6s</text>
<line x1="85" y1="25" x2="85" y2="55" stroke="grey" stroke-width=".5" />
<text x="110" y="20" text-anchor="middle">8s</text>
<line x1="110" y1="25" x2="110" y2="55" stroke="grey" stroke-width=".5" />
<line x1="10" y1="30" x2="110" y2="30" stroke="grey" stroke-width=".5" />
<line x1="10" y1="55" x2="110" y2="55" stroke="grey" stroke-width=".5" />
</svg>
此示例嵌入在 iframe 中。如果要激活键事件,则必须先单击它。
规范
规范 |
---|
SVG 动画级别 2 # EndAttribute |