Создание вращающегося прелоадера на CSS 3
1. Создаем HTML разметку
Два контейнера которые нам нужны для старта #loader-wrapper должен быть в полную ширину и высоту экрана
2. Позиционируем прелоадер
#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. Переведем квадраты в линии
/* 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 анимации
/* 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;
}