Создание вращающегося прелоадера на CSS 3

Demo

1. Создаем HTML разметку

Два контейнера которые нам нужны для старта #loader-wrapper должен быть в полную ширину и высоту экрана

2. Позиционируем прелоадер
img_css3-spinning-preloader-02

#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;

border: 3px solid #3498db;
z-index: 1500;
}

3. Создаем вложенные элементы

Создаем внутренние круги

#loader:before {
	content: "";
	position: absolute;
	top: 5px;
	left: 5px;
	right: 5px;
	bottom: 5px;
	border: 3px solid #e74c3c;
}
#loader:after {
	content: "";
	position: absolute;
	top: 15px;
	left: 15px;
	right: 15px;
	bottom: 15px;
	border: 3px solid #f9c922;
}

 

4. Переведем квадраты в линии
img_css3-spinning-preloader-03

/* change border to transparent and set only border-top to a solid color */
#loader {
	border: 3px solid transparent;
	border-top-color: #3498db;
}
#loader:before {
	border: 3px solid transparent;
	border-top-color: #e74c3c;
}
#loader:after {
	border: 3px solid transparent;
	border-top-color: #f9c922;
}

Теперь линии сделаем радиусными

#loader {
	border-radius: 50%;
}
#loader:before {
	border-radius: 50%;
}
#loader:after {
	border-radius: 50%;
}

5. Добавим CSS3 анимации

img_css3-spinning-preloader-01

/* copy and paste the animation inside all 3 elements */
/* #loader, #loader:before, #loader:after */
-webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;

/* include this only once */
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(0deg); /* IE 9 */
transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
}
100% {
-webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(360deg); /* IE 9 */
transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(0deg); /* IE 9 */
transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
}
100% {
-webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(360deg); /* IE 9 */
transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
}
}

#loader {
-webkit-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
}
#loader:before {
-webkit-animation: spin 3s linear infinite;
animation: spin 3s linear infinite;
}

Читайте также: