(Плюс задание «Счастливый квест»)
В этой статье мы рассмотрим три мощных метода создания захватывающей анимации в Интернете без необходимости использования внешних библиотек.
Введение.
Веб-анимация – это использование движения и переходов для создания динамичного и привлекательного взаимодействия на веб-сайтах и в веб-приложениях. Он включает в себя манипулирование визуальными элементами на веб-странице для передачи информации, улучшения взаимодействия с пользователем и общего улучшения пользовательского опыта.
Часто нет необходимости нагружать наши проекты всем весом библиотеки только для того, чтобы добавить к нашим компонентам простой анимационный эффект. Вместо этого мы можем засучить рукава и создать собственную анимацию.
Мы напишем простой счетчик, который найдет свое место практически в каждом веб-приложении, и с помощью этого упражнения найдем три уникальных способа его анимации.
Спиннеры загрузки – обычное явление в Интернете. Они обеспечивают визуальную обратную связь для пользователей во время загрузки или обработки контента. Хотя существует множество библиотек для создания индикаторов загрузки, понимание того, как создавать их с нуля, может оказаться полезным для веб-разработчиков.
- 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 вы можете добавлять динамические элементы в свои веб-проекты, предоставляя вам больше контроля и гибкости в ваших проектах.
Этот простой пример дает основу для понимания методов анимации. Однако мир анимации предлагает широкий спектр возможностей. Вы можете исследовать и экспериментировать с различными свойствами, чтобы создавать уникальные и захватывающие анимации. Возможности безграничны, так что дайте волю своему творчеству.