Я думаю, что вы ищете является добавка/накопительные атрибуты SVG. Это пример того, что я получил от css tricks
svg {
border: 3px solid #eee;
display: block;
margin: 1em auto;
}
<svg width="500" height="100">
<circle id="orange-circle" r="30" cx="50" cy="50" fill="orange" />
<animate xlink:href="#orange-circle" attributeName="cx" from="0" to="100" additive="sum" repeatCount="3" calcMode="spline" keyTimes="0;1" keySplines=".42 0 1 1" dur="1s" begin="click" fill="freeze" />
</svg>
На самом деле здесь лучше exaample (тот же источник)
svg {
border: 3px solid #eee;
display: block;
margin: 1em auto;
}
<svg width="500" height="150">
<style>
rect {
-moz-transform-origin: 75px 75px;
transform-origin: 50% 50%;
}
</style>
<rect id="deepPink-rectangle" width="50" height="50" x="50" y="50" fill="deepPink" />
<animateTransform
xlink:href="#deepPink-rectangle"
attributeName="transform"
attributeType="XML"
type="rotate"
from="0 75 75"
to="360 75 75"
dur="2s"
begin="0s; 5s; 9s; 17s;"
end="2s; 8s; 15s; 25s;"
fill="freeze"
restart="whenNotActive"
/>
</svg>
Marvelous, спасибо! Сначала я был смущен, потому что я не понял, что это не работает с 'repeatCount'. –
ну, на самом деле 'repeatCount' по-прежнему активен, а событие' end' запускается в конце конечного 'repeatCount'. – Kaiido
Я полагаю, что я должен быть более конкретным и сказать, что анимация никогда не заканчивается, если у вас 'repeatCount =" неопределенный "' - событие 'end' никогда не достигается! Я не вижу конкретного упоминания о умолчанию по MDN, но я предполагаю, что он установлен в 1, если не определен. –