CSS-переходи
Last updated
Last updated
CSS-переходи (transitions) - це механізм, який дозволяє плавно змінювати стилі елементів під час зміни їх стану. Наприклад, коли користувач наводить курсор миші на елемент, можна змінювати його кольори, розміри або інші властивості плавно, замість миттєвого змінювання стилів.
У CSS-переходах є всього два стани: початкове і кінцеве значення властивості. Для складніших ефектів використовують CSS-анімацію.
CSS-переходами керують за допомогою таких властивостей:
Властивість transition-property вказує, яка властивість або властивості повинні бути анімовані (переходити плавно) під час зміни стану елемента. Ця властивість дозволяє контролювати, які атрибути елемента повинні бути анімовані при спрацьовуванні подій, таких як наведення курсору чи зміна фокусу.
Значенням може бути одна властивість або список властивостей через кому. За замовчуванням значення all - будуть анімовані всі можливі властивості.
тут property1, property2, ... - назви властивостей CSS, які повинні бути анімовані.
Наприклад, якщо треба анімувати зміну кольору тла (background-color) та розмір (width) елемента при наведенні курсору.
Властивість transition-duration вказує тривалість часу, протягом якого повинна відбутися анімація зміни стилів властивостей, які були задані за допомогою властивості transition-property. Ця властивість вказує, скільки часу потрібно для зміни стану властивостей з їх поточних значень на нові значення. Якщо цю властивість не вказано, то перехід відбувається миттєво. Значення можна задавати у мілісекундах: 250ms, 3000ms або в секундах: : 0.25s, 3s.
тут time - тривалість анімації в секундах (s) або мілісекундах (ms).
Якщо різні властивості мають різні значення часу переходу, то їх треба перерахувати через кому.
Властивість transition-timing-function визначає графік, за яким анімація переходу відбувається від початкового значення до кінцевого значення. Ця властивість дозволяє вказати, яким чином зміни значень властивостей будуть плавно відбуватися протягом періоду, вказаного за допомогою transition-duration.
Існує декілька можливих значень для властивості transition-timing-function:
ease (за замовчуванням): Починає повільно, збільшує швидкість посередині анімації та повільно сповільнює в кінці. Це забезпечує плавний і природний ефект анімації.
linear: Анімація відбувається зі сталою швидкістю протягом всього періоду.
ease-in: Анімація починається повільно та збільшує швидкість в кінці.
ease-out: Анімація починається швидко та сповільнюється в кінці.
ease-in-out: Анімація починається повільно, збільшує швидкість всередині та сповільнюється в кінці.
cubic-bezier(n,n,n,n): Дозволяє визначити власну криву таймінгу за допомогою значень n, які лежать в діапазоні від 0 до 1.
Властивість transition-delay визначає часовий інтервал перед початком виконання анімації зміни стилів, яку ви встановили за допомогою властивостей transition-property, transition-duration, та transition-timing-function.
тут time - тривалість затримки вказується в секундах (s) або мілісекундах (ms).
Короткий запис CSS-переходу (CSS transition shorthand) дозволяє встановлювати одразу всі параметри переходу за допомогою однієї властивості transition. Це спрощує і покращує читабельність коду, оскільки всі параметри переходу розміщуються в одному місці.
property: Властивість чи властивості CSS, які повинні бути анімовані.
duration: Тривалість анімації вказується в секундах (s) або мілісекундах (ms).
timing-function: Функція плавності анімації.
delay: Затримка перед початком анімації, вказується в секундах (s) або мілісекундах (ms).
Можна зазначити більше однієї властивості анімації, розділяючи їх комами:
Функцію плавності анімації та затримку можна не вказувати, тоді їх значення будуть застосовані за замовчанням.
transition-delay використовується для встановлення затримки перед початком анімації для властивостей, які вказані в transition-property. Ця властивість може бути корисною для створення послідовних анімацій, коли треба, щоб різні властивості анімувалися з різними затримками.
Покликання:
в майбутньому може змінитися. Потрібно обов'язково зазначати властивості, які треба анімувати. Якшо цього не зробити, то будуть проанімовані усі властивості елемента.
За допомогою можна описати кастомну швидкість переходу властивості від одного значення до іншого.
Є багато видів функцій розподілу часу базованих на функціях Безьє. Для охочих дізнатися про них більше можна .