CSS Анимации
Анимации
Для создания анимации в CSS-3 используется свойство @keyframes
.
Данное свойство представляет собой контейнер, в который должны помещаться различные свойства оформления.
1@keyframes имяАнимации2{3from {CSS свойства} /* Оформление элемента перед началом анимации */4to {CSS свойства} /* Оформление элемента после завершения анимации */5}
После того, как анимация была создана необходимо добавить к элементу, который Вы хотите анимировать. CSS-3 свойство animation и указать в нем имя анимации (1 значение) и время (2 значение), в течение которого она будет выполняться. Также Вы можете устанавливать количество повторов анимации (3 значение).
1.box {2 animation: move 15s infinite linear;3}
move — имя анимации
15s — длительность
infinite — бесконечное повторение
linear — тип движения
Вы можете определять ход выполнения анимации не только с помощью ключевых слов from и to (которые использовались в предыдущем примере), но и с помощью %. С помощью % Вы можете более точно контролировать ход выполнения анимации. Например, можно указать, что определенный элемент в начале анимации (0%) должен быть белым к середине (50%) должен окрашиваться в оранжевый цвет, а к концу (100%) становиться черным.
1@keyframes anim {20% {margin-left:3px;margin-top:3px;background-color:#7F0055;}330% {margin-left:3px;margin-top:250px;background-color:#7F0055;}460% {margin-left:500px;margin-top:250px;background-color:black;}5100% {margin-left:3px;margin-top:3px;background-color:#7F0055;}6}78#wrap1 {9animation:anim 6s 3;10}
Свойство | Описание |
---|---|
@keyframes | Контейнер для определения анимации. |
animation | Позволяет задать все значения для настройки выполнения анимации за одно определение. |
animation-name | Позволяет указать имя анимации. |
animation-duration | Позволяет задать скорость выполнения анимации в секундах (по умолчанию имеет значение 0). |
animation-timing-function | Позволяет задать функцию смягчения отвечающую за плавность выполнения анимации (по умолчанию имеет значение ease). |
animation-delay | Позволяет задать задержку перед началом выполнения анимации (по умолчанию имеет значение 0). |
animation-iteration-count | Позволяет задать количество повторов анимации (по умолчанию имеет значение 1). |
animation-direction | При значении alternate в нечетные разы (1,3,5 ...) анимация будет проигрываться в нормальном, а в четные (2,4,6 ...) в обратном порядке. По умолчанию данное свойство имеет значение normal, при данном значении анимация всегда проигрывается в нормальном порядке. |
Также (для поддержки мультибраузерности) Вам нужно указывать дублирующие анимации:
1@keyframes myfirst2{3…4}56@-moz-keyframes myfirst /* Firefox */7{8…9}1011@-webkit-keyframes myfirst /* Safari и Chrome */12{13…14}
И соответствующие свойства:
1div2{3animation-name: myfirst;4animation-duration: 5s;5animation-timing-function: linear;6animation-delay: 2s;7animation-iteration-count: infinite;8animation-direction: alternate;9animation-play-state: running;10/* Firefox: */11-moz-animation-name: myfirst;12-moz-animation-duration: 5s;13-moz-animation-timing-function: linear;14-moz-animation-delay: 2s;15-moz-animation-iteration-count: infinite;16-moz-animation-direction: alternate;17-moz-animation-play-state: running;18/* Safari и Chrome: */19-webkit-animation-name: myfirst;20-webkit-animation-duration: 5s;21-webkit-animation-timing-function: linear;22-webkit-animation-delay: 2s;23-webkit-animation-iteration-count: infinite;24-webkit-animation-direction: alternate;25-webkit-animation-play-state: running;26}
Практика 👩💻👨💻
Цели:
- Освоить различные CSS-3 свойства.
- Получить навыки применения CSS анимации.
Задача: Разработать анимированную сцену, используя лишь возможности CSS и HTML (без Javascript).
Важно
Использовать рисунки запрещено, только html и css
Вариант | Задание |
---|---|
1 | Нарисовать ночное небо. Мерцающие на его фоне звезды (анимация). |
2 | Нарисовать голубое небо. Сияющее на его фоне солнце (анимация). |
3 | Нарисовать овечку (если проявить фантазию и немного творчества, то овечка это практически облако с ножками). Овечка должна бегать по лужайке влево и вправо (без анимации ног). |
4 | Нарисовать снеговика на лужайке. Снеговик должен махать рукой (анимация). |
5 | Нарисовать 3 воздушных шарика (минимум круг и нитка), которые после загрузки страницы с разной скоростью улетают вверх. |
6 | Нарисовать солнце. Солнце должно по кругу перемещаться по небу (появляться снизу слева и по кругу перемещаться по часовой стрелке). |
7 | Нарисовать полумесяц. Полумесяц должен по кругу перемещаться по небу (появляться снизу слева и по кругу перемещаться по часовой стрелке). |
8 | Нарисовать 3 луга, которые наложены друг на друга со смещением (холмы). Нарисовать солнце с лучами, которые вращаются вокруг солнца. |
9 | Нарисовать НЛО (тарелку с кабиной). НЛО должно 2 раза пролететь по небу по диагонали слева сверху вправо вниз. |
10 | Нарисовать дерево (ёлка из трех секций и ствол). Нарисовать птицу (тут можно взять рисунок), которая летела бы по небу зигзагом, т.е. слева направо и вверх вниз. |