X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Индикатор загрузки на чистом CSS

Приклад
  • 2024-03-29
  • 5666 переглядів

  • Дизайн та розробка сайту

Доброго времени суток. 🙂

Часто для того чтобы показать какую-нибудь информацию перед пользователем, ее нужно загрузить. Иногда это может занять определенное время. Для того, чтобы пользователь не видел пустой экран, часто выводят прогрессбар (индикатор загрузки). Это может быть GIF-анимация, javascript или даже флеш. Такой эффект помогает сделать загрузку более живой и объяснить посетителю, что скоро что-то появится, и перед ним не просто так пустота, которая ни о чем не говорит.

Анимация загрузки

Я хочу показать Вам способ как организовать такую анимацию загрузки с помощью чистого CSS, без использования javascript, изображений и тд. Все что нужно сделать это добавить минимальную HTML-разметку, стилей, настроить все и радоваться результату. И так, по порядку.



Пример

HTML - разметка

В нужном месте просто добавьте вот такую вот строку:

<div class="progress"><div></div></div>

CSS - стили

В Ваш файл стилей нужно добавить следующие стили, которые организуют анимацию и зададут внешний вид анимации.

@keyframes spin {
	to { transform: rotate(1turn); }
}
.progress {
	position: relative;
	display: inline-block;
	width: 5em;
	height: 5em;
	margin: 10px;
	font-size: 8px;
	text-indent: 999em;
	overflow: hidden;
	animation: spin 1s infinite steps(8);
}
.progress:before,
.progress:after,
.progress > div:before,
.progress > div:after {
	content: '';
	position: absolute;
	top: 0;
	left: 2.25em;
	width: .5em;
	height: 1.5em;
	border-radius: .2em;
	background: #eee;
	box-shadow: 0 3.5em #eee;
	transform-origin: 50% 2.5em;
}
.progress:before {
	background: #555;
}
.progress:after {
	transform: rotate(-45deg);
	background: #777;
}
.progress > div:before {
	transform: rotate(-90deg);
	background: #999;
}
.progress > div:after {
	transform: rotate(-135deg);
	background: #bbb;
}

Давайте разберем некоторые параметры, чтобы Вы могли настроить анимацию.

  1. В строке - animation: spin 1s infinite steps(8); - два параметра, которые Вы можете настроить. Первый - это время полной анимации, в данном случаи это 1 секунда - 1s. Второй - это количество шагов, за которые осуществится анимация. В нашем случаи 8, потому как у нас 8 полосок как в примере. Эффект будет похож на перемигивание каждой полоски по очереди.
    Если установите значение, например - 50, то анимация станет похожей на флеш, будет плавной и мягкой.
  2. В строке - transform: rotate(1turn); - можно настроить значение - 1turn. В предыдущем пункте мы обозначили время анимации - 1 секунда, а этот параметр устанавливает количество оборотов за эту секунду. В данном случаи - 1 оборот.
  3. У класса - progress есть параметр font-size: 8px;, с его помощью можно настроить размер данной анимации. Просто измените цифру.

Также можете настроить остальные параметры, цвет и тд. Если все сделаете правильно и настроите под себя, получите отличный результат, который украсит Ваш сайт или страницу.

А Вы используете анимацию загрузки на своем сайте?

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 2, в среднем: 4.5 из 5
Читайте також