(Плюс задание «Счастливый квест»)
В этой статье мы рассмотрим три мощных метода создания захватывающей анимации в Интернете без необходимости использования внешних библиотек.

Введение.
Веб-анимация – это использование движения и переходов для создания динамичного и привлекательного взаимодействия на веб-сайтах и в веб-приложениях. Он включает в себя манипулирование визуальными элементами на веб-странице для передачи информации, улучшения взаимодействия с пользователем и общего улучшения пользовательского опыта.
Часто нет необходимости нагружать наши проекты всем весом библиотеки только для того, чтобы добавить к нашим компонентам простой анимационный эффект. Вместо этого мы можем засучить рукава и создать собственную анимацию.
Мы напишем простой счетчик, который найдет свое место практически в каждом веб-приложении, и с помощью этого упражнения найдем три уникальных способа его анимации.

Спиннеры загрузки – обычное явление в Интернете. Они обеспечивают визуальную обратную связь для пользователей во время загрузки или обработки контента. Хотя существует множество библиотек для создания индикаторов загрузки, понимание того, как создавать их с нуля, может оказаться полезным для веб-разработчиков.
- CSS-анимация
. Анимация позволяет элементу постепенно менять один стиль на другой. Когда речь идет об анимации CSS, первое, что обычно приходит на ум, — это правило @keyframe.
Этоправило в CSS используется для указания правила анимации. Анимация создается с использованием изменяемых стилей CSS. Во время анимации свойство CSS может меняться много раз.
Пример:
В этом примере мы создадим простой счетчик загрузки CSS. В этом примере мы просто определим ключевые кадры для вращения счетчика, создавая элегантную анимацию загрузки.
.loader {
border: 16px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #d62fba;
width: 100px;
height: 120px;
animation: customSpin 1s linear infinite;
}
@keyframes customSpin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
<body>
<div class="loader"></div>
</body>
2.Масштабируемая векторная графика (SVG):
SVG специально разработан для Интернета и имеет ряд характеристик, которые делают его хорошо подходящим для использования в веб-приложениях и на веб-страницах. Также он идеально подходит для создания векторной графики, включая загрузку счетчиков. Вы можете проектировать и анимировать элементы SVG для создания уникальных и масштабируемых анимаций загрузки.
Пример:
Во-первых, нам нужно добавить <svg> корневой элемент документа SVG. ИТ-специалисты определяют контейнер для векторной графики.
Далее у нас есть два элемента <circle>: один представляет фоновый круг, а второй — анимированную часть загрузчика. Внутри второго <circle> находится элемент <animate>, используемый для создания анимации в SVG. Настраивая определенные атрибуты, мы можем настроить дизайн нашего счетчика. Посмотрите код ниже и скопируйте его, чтобы отобразить анимацию вращения:
<body>
<svg
width="100"
height="120"
viewBox="0 0 100 100"
preserveAspectRatio="xMidYMid"
>
<circle
cx="50"
cy="50"
r="40"
stroke="#f3f3f3"
stroke-width="16"
fill="none"
></circle>
<circle
cx="50"
cy="50"
r="40"
stroke="#1ab83c"
stroke-width="16"
stroke-dasharray="251.2"
stroke-dashoffset="0"
fill="none"
>
<animate
attributeName="stroke-dashoffset"
from="251.2"
to="0"
dur="2s"
repeatCount="indefinite"
></animate>
</circle>
</svg>
</body>
В целом, этот SVG-код создает индикатор загрузки со статическим фоновым кругом и анимированным пунктирным граничным кругом. Анимация заставляет пунктирную границу круга выглядеть вращающейся, создавая эффект загрузки.
3. Манипулирование JavaScript и DOM.
Манипулирование DOM в javascript — это процесс взаимодействия с DOM API для изменения или модификации HTML-документа, который будет отображаться в веб-браузере.
Действительно ли вы понимаете основы и имеете четкое представление о том, что такое DOM?
Не волнуйтесь, это проще, чем вы думаете :)
Когда веб-страница загружается, браузер создает Dдокумент Oобъект Mмодель страницы. DOM означает объектную модель документа и может быть представлен как дерево элементов, созданное браузером. Манипулирование DOM — это взаимодействие JavaScript DOM API с целью модификации или изменения HTML-документа.
JavaScript позволяет использовать динамическую и интерактивную загрузку счетчиков. Манипулируя DOM и управляя свойствами CSS, вы можете создавать анимации загрузки с точным контролем.
Пример:
Вот простой пример использования манипуляций с DOM в JavaScript для создания анимации счетчика загрузки. Он вращает элемент div с классом «spinner» в бесконечном цикле. Счетчик будет вращаться до тех пор, пока вы не закроете веб-страницу или не уйдете с нее.
После того, как вы добавите тег <script> в свой HTML-файл, вам необходимо определить функцию для анимации счетчика. Эта функция постоянно увеличивает угол поворота и обновляет стиль элемента для создания анимации. Он использует requestAnimationFrame для плавного рендеринга.
<script>
const spinner = document.querySelector('.loader');
let rotation = 0;
function animateSpinner() {
rotation += 10;
spinner.style.transform = `rotate(${rotation}deg)`;
requestAnimationFrame(animateSpinner);
}
</script>
Вызовите функцию animateSpinner(), чтобы запустить анимацию. Это заставит загрузочный элемент непрерывно вращаться.
<script> // Call the animation function to start the spinner animation animateSpinner(); </script>
Выполнив эти два шага, вы получите функциональный индикатор загрузки на своей HTML-странице, используя манипуляции с DOM.
Вот и все! Мы успешно создали эту анимацию без необходимости использования внешних библиотек. Это демонстрирует, как с помощью JavaScript и CSS вы можете добавлять динамические элементы в свои веб-проекты, предоставляя вам больше контроля и гибкости в ваших проектах.

Этот простой пример дает основу для понимания методов анимации. Однако мир анимации предлагает широкий спектр возможностей. Вы можете исследовать и экспериментировать с различными свойствами, чтобы создавать уникальные и захватывающие анимации. Возможности безграничны, так что дайте волю своему творчеству.
