CSS - Loaders: руковод BEGINNER'S GUIDE TO CREATING DYNAMIC LOADING ANIMATIONS

Привет, будущие веб-разработчики! Сегодня мы окунемся в fasciniruyuschiy мир CSS-лоадеров. Как ваш доброжелательный соседский компьютерный учитель, я с радостью провожу вас через это путешествие. Не волнуйтесь, если вы никогда не писали ни строчки кода - мы начнем с самых азов и будем двигаться вверх. К концу этого руководства вы будете создавать завораживающие анимации загрузки, которые сделают ваши веб-сайты профессиональными и увлекательными. Так что давайте начнем!

CSS - Loaders

Что такое 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); }
}

Давайте разберем это:

  1. Мы создаем элемент <div> с классом "loader".
  2. В нашем CSS мы стилизуем этот div, чтобы он был кругом, используя border-radius: 50%.
  3. Мы даем ему светло-серый border (#f3f3f3) на всех сторонах, кроме верхней, которая синяя (#3498db).
  4. Свойство animation настраивает наш вращающийся эффект:
  • spin - это имя нашей анимации.
  • 2s означает, что анимация занимает 2 секунды для завершения.
  • linear означает, что скорость анимации постоянна.
  • infinite означает, что она будет повторяться бесконечно.
  1. 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); }
}

Этот лоадер создает два вращающихся круга:

  1. Внешний круг (:before) вращается с синей верхней границей.
  2. Внутренний круг (: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:

  1. Мы создаем circle с градиентом, который делится на две части: синюю и серую.
  2. Затем мы добавляем белый circle на top с помощью pseudo-element :before.
  3. По мере вращения внешнего круга создается иллюзия 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