Что такое SVG? Анимируем SVG объекты.
Итак, мы уже многое знаем об SVG. Мы можем рисовать какие-то объекты, стилизовать их и писать текст, но есть ещё одна классная вещь - анимация. Вот о том, как анимировать SVG объекты, мы и поговорим в этой статье.
<svg>
<rect x="0" y="0" width="150" height="150" fill="#0f0">
<animate attributeName="width" from="0" to="150" dur="5s" />
</rect>
</svg>
Для анимации служит тег animate. Атрибут attributeName принимает название того атрибута, который мы будем анимировать, from и to, собственно, начальное и конечное значение, а в dur мы указываем сколько секунд будет длиться анимация.
Также мы можем анимировать положение объекта на странице. Как вы помните, атрибут x и y указываем положение по оси x и по оси y. Вот, чтобы передвинуть объект, мы будем анимировать эти атрибуты.
<svg>
<rect x="0" y="0" width="200" height="200" fill="#0f0">
<animate attributeName="x" from="0" to="50" dur="3s" fill="freeze" />
</rect>
</svg>
Здесь мы анимируем атрибут x, т.е. положение по оси x, а атрибут fill со значением freeze замораживает объект на том месте, где он остановился. Если вы его уберёте, то после анимации объект вернётся на первоначальную позицию.
Если вам нужно анимировать сразу несколько атрибутов, то укажите несколько тегов animate.
<svg>
<ellipse cx="30" cy="30" rx="30" ry="30">
<animate attributeName="cx" from="30" to="50" dur="1s" fill="freeze" />
<animate attributeName="rx" from="30" to="50" dur="1s" fill="freeze" />
</ellipse>
</svg>
И наконец, вы можете трансформировать объекты с помощью тега animateTransform.
<svg>
<rect width="100" height="100">
<animateTransform attributeName="transform" type="rotate" from="0" to="-100" dur="5s" />
</rect>
</svg>
Атрибут type может принимать значение scale(масштаб), translate(перемещение) и rotate(поворот).
Итак, сегодня мы рассмотрели, как анимировать SVG объекты. До следующей статьи!
-
- Михаил Русаков
Комментарии (1):
отлично, но что если я хочу анимировать border? скажем, чтобы он постепенно рисовался по окружности..?
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.