CSS - Loaders: руковод BEGINNER'S GUIDE TO CREATING DYNAMIC LOADING ANIMATIONS
Привет, будущие веб-разработчики! Сегодня мы окунемся в fasciniruyuschiy мир CSS-лоадеров. Как ваш доброжелательный соседский компьютерный учитель, я с радостью провожу вас через это путешествие. Не волнуйтесь, если вы никогда не писали ни строчки кода - мы начнем с самых азов и будем двигаться вверх. К концу этого руководства вы будете создавать завораживающие анимации загрузки, которые сделают ваши веб-сайты профессиональными и увлекательными. Так что давайте начнем!
Что такое CSS Loaders?
Before мы перейдем к коду, давайте поймем, что такое CSS-лоадеры и почему они важны. Вы когда-нибудь посещали веб-сайт и видели вращающийся круг или прыгающую точку, ожидая загрузки контента? Это лоадер! Эти анимации предоставляют визуальную обратную связь пользователям, letting them know, что что-то происходит за кулисами. Это как decir вашим посетителям: "Подождите секунду, мы готовим для вас вещи!"
Создание вашего первого лоадера
Теперь, давайте натянем рукава и создадим наш первый лоадер. Мы начнем с чего-то простого и постепенно увеличим сложность.
CSS Loaders - Основной пример
Вот базовый лоадер, который создает вращающийся круг:
<div class="loader"></div>
.loader {
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
Давайте разберем это:
- Мы создаем элемент
<div>
с классом "loader". - В нашем CSS мы стилизуем этот div, чтобы он был кругом, используя
border-radius: 50%
. - Мы даем ему светло-серый border (
#f3f3f3
) на всех сторонах, кроме верхней, которая синяя (#3498db
). - Свойство
animation
настраивает наш вращающийся эффект:
-
spin
- это имя нашей анимации. -
2s
означает, что анимация занимает 2 секунды для завершения. -
linear
означает, что скорость анимации постоянна. -
infinite
означает, что она будет повторяться бесконечно.
- Rule
@keyframes
определяет, что происходит во время анимации. Мы вращаемся от 0 до 360 градусов.
И вуаля! Вы создали свой первый лоадер. Неужели это не увлекательно?
CSS Loaders - С использованием свойства border-right
Теперь давайте попробуем slightly khác biệtный подход. Мы создадим лоадер, который looks like он "заполняется" по часовой стрелке:
<div class="loader"></div>
.loader {
border: 16px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #3498db;
border-right: 16px solid #3498db;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
Основное различие здесь в том, что мы добавили border-right: 16px solid #3498db;
. Это создает лоадер, который appears to fill up при вращении. Это как watching clock hand move, не так ли?
CSS Loaders - С использованием :before и :after
Теперь давайте поднимем уровень и создадим более сложный лоадер с использованием pseudo-elements :before
и :after
. Это даст нам cool "двойное кольцо" effect:
<div class="loader"></div>
.loader {
width: 120px;
height: 120px;
position: relative;
}
.loader:before, .loader:after {
content: "";
position: absolute;
border: 8px solid #f3f3f3;
border-radius: 50%;
animation: spin 2s linear infinite;
}
.loader:before {
top: 0;
left: 0;
right: 0;
bottom: 0;
border-top-color: #3498db;
}
.loader:after {
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-top-color: #e74c3c;
animation-delay: 0.5s;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
Этот лоадер создает два вращающихся круга:
- Внешний круг (
:before
) вращается с синей верхней границей. - Внутренний круг (
:after
) немного меньше, имеет красную верхнюю границу и начинает вращаться на полсекунды позже.
Результат - завораживающий эффект двойного кольца. Pretty cool, не так ли?
CSS Loaders - С использованием linear-gradient
Для нашего final trick, давайте создадим лоадер с использованием linear-gradient
. Это даст нам smooth, continuous color transition:
<div class="loader"></div>
.loader {
width: 120px;
height: 120px;
border-radius: 50%;
background: linear-gradient(to right, #3498db 50%, #f3f3f3 50%);
animation: spin 1s linear infinite;
}
.loader:before {
content: "";
display: block;
width: 100px;
height: 100px;
border-radius: 50%;
background: #fff;
margin: 10px;
position: relative;
z-index: 1;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
Этот лоадер использует clever trick:
- Мы создаем circle с градиентом, который делится на две части: синюю и серую.
- Затем мы добавляем белый circle на top с помощью pseudo-element
:before
. - По мере вращения внешнего круга создается иллюзия smooth loading animation.
Summary of Loader Methods
Вот quick reference table методов, которые мы рассмотрели:
Method | Description | Key Properties |
---|---|---|
Basic Example | Simple spinning circle | border, border-radius, animation |
Border-right | Clockwise filling effect | border, border-right |
:before and :after | Double ring effect | :before, :after, animation-delay |
Linear-gradient | Smooth color transition | linear-gradient, :before |
И вот и все! Вы только что узнали четыре разных способа создания CSS-лоадеров. Помните, это только отправные точки - не стесняйтесь экспериментировать с цветами, размерами и анимациями, чтобы создавать свои уникальные лоадеры.
When мы подходим к концу, я хочу поделиться быстрой историей. Когда я впервые начал teaching CSS, у меня был ученик, который был frustated с лоадерами. Он сказал: "Зачем беспокоиться? Пользователи все равно ненавидят ожидание!" Но затем он создал свой первый custom loader, и его глаза загорелись. Он понял, что даже small wait можно превратить в delightful experience с правильной анимацией. Вот сила CSS-лоадеров - они transform waiting в wondering.
Так что идите и создавайте! Экспериментируйте с этими техниками, mix и match их, и, самое главное, получайте удовольствие. Помните, в мире веб-разработки, creativity - ваш лучший друг. Счастливого кодирования, и до следующего раза, держите свои лоадеры вращающимися!
Credits: Image by storyset