① Введение в CSS3-анимацию
CSS3-анимация придаёт сайтам динамичность. Она оживляет веб-страницы, улучшая взаимодействие с пользователем. В отличие от CSS3-переходов, создание анимации базируется на ключевых кадрах, которые позволяют автоматически воспроизводить и повторять эффекты на протяжении заданного времени, а также останавливать анимацию внутри цикла.
Содержание:
1. Введение в CSS3-анимацию
2. Ключевые кадры
3. Временная функция для ключевых кадров
4. Название анимации: свойство animation-name
5. Продолжительность анимации: свойство animation-duration
6. Временная функция: свойство animation-timing-function
7. Повтор анимации: свойство animation-iteration-count
8. Направление анимации: свойство animation-direction
9. Проигрывание анимации: свойство animation-play-state
10. Задержка анимации: свойство animation-delay
11. Состояние элемента до и после воспроизведения анимации: свойство animation-fill-mode
12. Краткая запись анимации: свойство animation и Множественные анимации
CSS3-анимация может применяться практически для всех html-элементов, а также для псевдоэлементов :before и :after. Список анимируемых свойств приведен на этой странице. При создании анимации не стоит забывать о возможных проблемах с производительностью, так как на изменение некоторых свойств требуется много ресурсов.
Поддержка браузерами
IE: 10.0
Firefox: 16.0, 5.0 -moz-
Chrome: 43.0, 4.0 -webkit-
Safari: 4.0 -webkit-
Opera: 12.1, 12.0 -o-
iOS Safari: 9, 7.1 -webkit-
Opera Mini: —
Android Browser: 44, 4.1 -webkit-
Chrome for Android: 44
HTML
<div class="loader"> <span></span> <span></span> <span></span> <span></span> </div>
CSS
*{box-sizing:border-box}
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
@keyframes loader {
0% {transform:rotate(-45deg)}
50%{transform:rotate(-135deg)}
100%{transform:rotate(-225deg)}}
@keyframes span-1 {
0% {transform:translate(0);}
50%{transform:translate(-50px, 0);border-color:#EE4D68}
100%{transform:translate(0);}}
@keyframes span-2 {
0%{transform:translate(0);}
50%{transform:translate(50px, 0);border-color:#875678}
100%{transform:translate(0);}}
@keyframes span-3 {
0%{transform:translate(0);}
50%{transform:translate(0, -50px);border-color:#FF9900}
100%{transform:translate(0);}}
@keyframes span-4 {
0%{transform:translate(0);}
50%{transform:translate(0, 50px);border-color:#00E4F6}
100%{transform:translate(0);}}
.loader {
width: 50px;
height: 50px;
position: relative;
animation: loader 2s infinite ease-in-out;
}
.loader span {
width: 50px;
height: 50px;
position: absolute;
left: 0;
top: 0;
border: 4px solid #0B1B48;
}
.loader span:nth-child(1) {
animation: span-1 2s ease-in-out infinite;
}
.loader span:nth-child(2) {
animation: span-2 2s ease-in-out infinite;
}
.loader span:nth-child(3) {
animation: span-3 2s ease-in-out infinite;
}
.loader span:nth-child(4) {
animation: span-4 2s ease-in-out infinite;
}Продолжение в следующей статье!