📑 Анімації
Для початку, ознайомимось з можливостями побудови графічних фігур за допомогою CSS:
https://easycss.top/elements/geometricheskie-figury-na-chistom-css/
Далі, можемо задавати анімацію для цих фігур.
Так, можна задати стандартне оформлення для певного блоку (наприклад, div), а також його оформлення у момент наведення вказівника миші (hover) на цей блок. Можна переглянути html-код, опис стилів та результат застосування такого ефекту:
У цьому прикладі стандартно блок div має ширину та висоту 200 пікселів, а при наведенні мишки (подія hover), ширина змінюється на 300 пікселів протягом 2 секунд. Якщо додати властивість transition: 2s до початкового стилю, то повернення до 200 пікселів теж відбуватиметься не миттєво, а протягом вказаного часу.
Для гнучкого керування процесом анімації можна задавати визначення окремих кадрів, keyframes. Для такої анімації необхідно вказувати ім'я – для використання при виклику, а також стильові властивості у різні моменти часу:
- <відсоток> значення властивостей у заданий момент часу (у відсотках);
- <властивість> - анімована властивість;
- <значення> - значення в момент, описаний селектором кадру.
Так, у наступному прикладі блок div початково має червоний колір тла. Протягом 4 секунд відбувається анімація example з такими етапами: колір заливки змінюється з червоного до жовтого, до синього, до зеленого. У кінці відбувається повернення до червоного кольору, визначеного для блоку div.
Можна також задавати зміну позиції в анімації; для цього у початкових властивостях слід вказати відносне позиціювання, а у кадрах анімації - задати параметри розташування об'єкту відносно верху та лівої межі сторінки.
У наведеному прикладі також змінений радіус фігури (border-radius) - таким чином можна отримати коло, чи еліпс. Цей атрибут може визначати форму фігури за параметрами скруглення окремих кутів, наприклад border-radius:50% 0 0 0; означає, що скруглений буде лише 1 верхній лівий кут.
Серед анімованих властивостей можна виділити трансформацію transform, яка може набувати значень matrix(n,n,n,n,n,n) - перетворення, translate(x,y) - переміщення, scale(x,y) - масштаб, rotate(кут) - поворот, skew(кут-х,кут-у) - нахиляння, perspective - перспектива
Серед додаткових параметрів анімації можна виділити наступні:
animation-delay: 2s; - затримка початку анімації
animation-iteration-count: 3; - кількість повторів анімації. можливе значення infinite; - безконечне повторення
animation-direction: reverse; - напрям анімації (повторити у зворотньому порядку). можливе значення alternate; - повторювати в прямому та зворотньому порядку
animation-timing-function: linear; - прискорення анімації (відсутнє). можливі значення: ease; ease-in; ease-out; ease-in-out;
Варто зазначити, що існує скорочений запис стильових властивостей.
div {
animation-name: example;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
можна записати:
div {
animation: example 5s linear 2s infinite alternate;
}Властивості анімації можуть специфічно підтримуватись різними браузерами, тож для коректного відтворення слід вживати так звані префікси - додавати до стильових властивостей уточнення того, для якого браузера вони призначені.
- Chrome & Safari: -webkit-
- Firefox: -moz-
- Opera: -o-
- Internet Explorer: -ms-
div {
-webkit-animation: example 5s linear 2s infinite alternate;
-moz-animation: example 5s linear 2s infinite alternate;
-o-animation: example 5s linear 2s infinite alternate;
-ms-animation: example 5s linear 2s infinite alternate;
animation: example 5s linear 2s infinite alternate;
}