0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p><strong>SVG</strong>-элемент можно анимировать таким же образом, как это происходит с<strong>HTML</strong>. Для создания анимаций используется<strong>@keyframes</strong>. В принципе, в сети множество руководств на тему<strong>CSS</strong>-анимации при этом всё, что там описывается, по сути, применимо и к<strong>SVG</strong>-формату. Но давайте всё же приведем несколько примеров.</p>
1
<p><strong>SVG</strong>-элемент можно анимировать таким же образом, как это происходит с<strong>HTML</strong>. Для создания анимаций используется<strong>@keyframes</strong>. В принципе, в сети множество руководств на тему<strong>CSS</strong>-анимации при этом всё, что там описывается, по сути, применимо и к<strong>SVG</strong>-формату. Но давайте всё же приведем несколько примеров.</p>
2
<p>Итак,<strong>SVG</strong>-документ характеризуется наличием внутренних таблиц стилей, и именно в них и следует писать анимацию:</p>
2
<p>Итак,<strong>SVG</strong>-документ характеризуется наличием внутренних таблиц стилей, и именно в них и следует писать анимацию:</p>
3
<p>Собственно говоря, выполнить анимацию<strong>SVG</strong>-атрибута так же просто, как и в случае с<strong>CSS</strong>-атрибутами. Обратите внимание, что значения можно задавать как в процентах, так и с помощью конструкции<strong>from-to</strong>:</p>
3
<p>Собственно говоря, выполнить анимацию<strong>SVG</strong>-атрибута так же просто, как и в случае с<strong>CSS</strong>-атрибутами. Обратите внимание, что значения можно задавать как в процентах, так и с помощью конструкции<strong>from-to</strong>:</p>
4
<p>Далее останется просто применить к нужному элементу созданные анимации:</p>
4
<p>Далее останется просто применить к нужному элементу созданные анимации:</p>
5
<p>Однако все вышесказанное представляет собой статичные анимации. Но что прикажете делать, если нужна интерактивность? Не очень много, но тем не менее кое-что можно сделать интерактивным даже на<strong>CSS</strong>. К примеру, мы можем воспользоваться<strong>transition</strong>в сочетании с псевдоклассом<strong>hover</strong>:</p>
5
<p>Однако все вышесказанное представляет собой статичные анимации. Но что прикажете делать, если нужна интерактивность? Не очень много, но тем не менее кое-что можно сделать интерактивным даже на<strong>CSS</strong>. К примеру, мы можем воспользоваться<strong>transition</strong>в сочетании с псевдоклассом<strong>hover</strong>:</p>
6
<p>При имплементации примера выше, в случае наведения на элемент он поменяет свой цвет с синего на голубой за 3 секунды.</p>
6
<p>При имплементации примера выше, в случае наведения на элемент он поменяет свой цвет с синего на голубой за 3 секунды.</p>
7
<p>Итак, анимация атрибутов, как и небольшой кусочек интерактивности, это, по большему счету, основное, что можно сказать об особенностях<strong>CSS</strong>-анимации. Однако даже этого функционала вполне достаточно в большинстве случаев, ведь многие задачи сводятся к анимации какого-нибудь атрибута. При этом почти любой<strong>SVG</strong>-атрибут вы можете анимировать. Почему "почти"? Потому, что если вы выберете случайный атрибут, который окажется неанимируемым, то вам очень "повезло", т. к. это большая редкость.</p>
7
<p>Итак, анимация атрибутов, как и небольшой кусочек интерактивности, это, по большему счету, основное, что можно сказать об особенностях<strong>CSS</strong>-анимации. Однако даже этого функционала вполне достаточно в большинстве случаев, ведь многие задачи сводятся к анимации какого-нибудь атрибута. При этом почти любой<strong>SVG</strong>-атрибут вы можете анимировать. Почему "почти"? Потому, что если вы выберете случайный атрибут, который окажется неанимируемым, то вам очень "повезло", т. к. это большая редкость.</p>
8
<p><em>По материалам https://habr.com/ru/post/450924/.</em></p>
8
<p><em>По материалам https://habr.com/ru/post/450924/.</em></p>
9
9