Креативные CSS анимации загрузки страницы
Сегодня мы собираемся сделать много вещей с анимацией CSS. В самом деле, мы будем говорить о загрузке CSS анимаций. Что вы скажете? Готовы?
Несколько вещей, прежде чем мы начнем:
CSS: за и против
Каковы преимущества и недостатки чистого CSS? Почему бы не решение JS, или даже старый добрый способ: анимированный GIF? Не существует точного ответа, он не будет зависеть от ситуации. Но позвольте мне дать вам некоторые идеи.
Плюсы
Мы начнем с чем-то довольно простого, как всегда. Наша маленькая сфера работает бесконечно слева направо в баре.
HTML
Довольно минималистично, не так ли?
CSS
Во-первых, мы создаем контейнер для сферы: бар. Чтобы сохранить пропорции и сделать Preloaders масштабируемой. Просто измените размер шрифта значение на обертке для масштабирования всего этого, как вы хотите. Довольно просто, да?
Давайте оформим слово "Подождите.". Вы, наверное, заметили, его нет в разметке: это потому, псевдо элемент с контентом "Подождите".
Таким образом, в случае, если вы хотите, чтобы это было реальным элементом, создайте свою разметку и оформите ее. Теперь давайте взглянем на сферу.
Последнее, но не менее важное, ключевые кадры запуска анимации:
Все как можно просто, не так ли? Таким образом, сфере задан ход анимации в 1,75 секунд, от начала до конца и от конца в начало.
Если вы хотите динамически обновлять положение элемента на основе прогрессирования загрузки, вам придется поработать с JavaScript.
Тут вам представлено 5 версий. Наслаждайтесь
Несколько вещей, прежде чем мы начнем:
- Вы не увидите никаких префиксов в CSS, но вы, конечно, найдете их в файлах.
- Цель урока, чтобы показать весь потенциал CSS, особенно CSS3, поэтому рендеринг может быть изменен на-IE9. Если вы планируете поддерживать эти браузеры, не забудьте сделать резервные варианты.
- Лично я использую box-model, в которой [ширина] = [Элемент шириной] + [обивка] + [границы]. Мы напишем его так:
Код
*,
*:before,
*:after {
box-sizing: border-box;
}
*:before,
*:after {
box-sizing: border-box;
}
CSS: за и против
Каковы преимущества и недостатки чистого CSS? Почему бы не решение JS, или даже старый добрый способ: анимированный GIF? Не существует точного ответа, он не будет зависеть от ситуации. Но позвольте мне дать вам некоторые идеи.
Плюсы
- CSS легко редактируется: вы можете быстро изменить длительность, скорость, цвет или что вы хотите на вашей анимации
- CSS можно масштабировать по своему усмотрению без потери качества
- CSS анимации быстрее, чем JS "анимации", так как они используют родной движок браузера
- CSS анимации используют GPU ускорение: если у вас есть мощное устройство, у вас будет очень быстрая и плавная анимация
- CSS анимации не имеют полной поддержки браузера: IE9 и Opera Mini не понимаю их
- CSS прелоадеры обычно состоят из тяжелой разметки.
Мы начнем с чем-то довольно простого, как всегда. Наша маленькая сфера работает бесконечно слева направо в баре.
HTML
Код
<div class="bar">
<i class="sphere"></i>
</div>
<i class="sphere"></i>
</div>
Довольно минималистично, не так ли?
CSS
Во-первых, мы создаем контейнер для сферы: бар. Чтобы сохранить пропорции и сделать Preloaders масштабируемой. Просто измените размер шрифта значение на обертке для масштабирования всего этого, как вы хотите. Довольно просто, да?
Код
.demo-1 .bar {
font-size: 20px;
width: 10em;
height: 1em;
position: relative;
margin: 100px auto;
border-radius: .5em;
background: white;
background: rgba(255,255,255,0.6);
box-shadow:
0 0 0 .05em rgba(100,100,100,0.075),
0 0 0 .25em rgba(0,0,0,0.1),
inset 0 .1em .05em rgba(0,0,0,0.1),
0 .05em rgba(255,255,255,0.7);
}
font-size: 20px;
width: 10em;
height: 1em;
position: relative;
margin: 100px auto;
border-radius: .5em;
background: white;
background: rgba(255,255,255,0.6);
box-shadow:
0 0 0 .05em rgba(100,100,100,0.075),
0 0 0 .25em rgba(0,0,0,0.1),
inset 0 .1em .05em rgba(0,0,0,0.1),
0 .05em rgba(255,255,255,0.7);
}
Давайте оформим слово "Подождите.". Вы, наверное, заметили, его нет в разметке: это потому, псевдо элемент с контентом "Подождите".
Код
.demo-1 .bar:after {
content: "Please wait.";
position: absolute;
left: 25%;
top: 150%;
font-family: 'Carrois Gothic', sans-serif;
font-size: 1em;
color: #555;
text-shadow: 0 .05em rgba(255,255,255,0.7);
}
content: "Please wait.";
position: absolute;
left: 25%;
top: 150%;
font-family: 'Carrois Gothic', sans-serif;
font-size: 1em;
color: #555;
text-shadow: 0 .05em rgba(255,255,255,0.7);
}
Таким образом, в случае, если вы хотите, чтобы это было реальным элементом, создайте свою разметку и оформите ее. Теперь давайте взглянем на сферу.
Код
.demo-1 .sphere {
display: block;
width: 1em;
height: 100%;
border-radius: 50%;
background: linear-gradient(#eee, #ddd);
box-shadow:
inset 0 .15em .1em rgba(255,255,255,0.3),
inset 0 -.1em .15em rgba(0,0,0,0.15),
0 0 .25em rgba(0,0,0,0.3);
animation: move 1.75s ease-in-out infinite alternate;
}
display: block;
width: 1em;
height: 100%;
border-radius: 50%;
background: linear-gradient(#eee, #ddd);
box-shadow:
inset 0 .15em .1em rgba(255,255,255,0.3),
inset 0 -.1em .15em rgba(0,0,0,0.15),
0 0 .25em rgba(0,0,0,0.3);
animation: move 1.75s ease-in-out infinite alternate;
}
Последнее, но не менее важное, ключевые кадры запуска анимации:
Код
@keyframes move {
to { margin-left: 90%; }
}
to { margin-left: 90%; }
}
Все как можно просто, не так ли? Таким образом, сфере задан ход анимации в 1,75 секунд, от начала до конца и от конца в начало.
Если вы хотите динамически обновлять положение элемента на основе прогрессирования загрузки, вам придется поработать с JavaScript.
Тут вам представлено 5 версий. Наслаждайтесь
-
FalleN -
4343 -
1 -
259
Но только нужно ставить наверное на те модули которые обновляться должны не раньше через пару тройку минут
С Уважением, Андрей...