Transitions vs Animations — CSS Animation
При анимации в сети, ты используешь transition (переходы) или animation (анимации)? Бывают случаи, когда ты предпочитаешь выбрать один вместо другого. Давай поговорим о различиях.
Что такое Transitions?
Переход возникает, когда элемент переходит от одного состояния к другому, и браузер выполняет в этом состоянии изменения с последовательностью в заданных промежутках между кадрами. Есть начальное и конечное состояние.
В большинстве случаев мы видим состояния переходов, которые используются при наведении курсора мыши или когда информацию на страницу добавляем/удаляем. С помощью hover могут быть мелкие изменения в цвете шрифта, а информация на странице может то постепенно исчезать, то появляться.
Поскольку переходы ограничиваются этими двумя этапами, то они нуждаются в некоторых нюансах анимации и вместе с тем их проще использовать.
Когда использовать
Если ты хочешь изменить элемент плавно с одного состояния в другой, лучше использовать transition.
Переход будет работать хорошо, когда кто-то навет мышку/нажмет на кнопку:
Или при добавлении элемента на страницу:
- A list item
- A list item
Что такое Animations?
В CSS анимации являются более мощными альтернативами по сравнению с transitions (переходами). Вместо того, чтобы полагаться на переход от одного начального состояния к конечному, анимации могут переходить промежуточными этапами, на столько на сколько хочется, и дает больше контроля над порядком изменения состояния анимации.
Если transition устанавливает переход только от А до B, то animation может и A, и B, и C и даже D. Или любое другое количество этапов по мере необходимости.
Animations добивается этого с помощью набора ключевых кадров (keyframes). Если переход может быть определен одной строкой в классе, то анимация работает посредством ссылки на набор ключевых кадров(@keyframes), которые описаны отдельно в CSS.
Когда использовать
Если необходимо чтобы анимация выполнялась при загрузке страницы или нужна более сложная, чем от А состояния к B состоянию, то в таком случае более подходящим является CSS анимация.
Например: нужна анимация на странице, которая начинает работать по прошествии определенного периода времени, как этот эффект мигания персонажа Baymax:
Кроме того анимация может быть лучшим выбором в случае, если элемент должен двигаться по нескольким местам на странице. Например таких как: инструкция наложения с курсором из различных областей на экране.
Иногда это не очевидно
В недавним посте начал с анимации, но затем стал использовать transitions.
Когда я начала разрабатывать эти часы, стрелки у меня должны были беспрерывно двигаться начиная с загрузки. Это был наглядный пример для использования свойства animation. Анимация начиналась после загрузки и должна была продолжаться бесконечно. Когда я начал усложнять, то я обнаружил, что имеет смысл сделать с помощью JavaScript.
По мере использования JavaScript, становилось понятно что с выбором ошибся и transitions лучше подходит. Когда JavaScript изменяет положение стрелки, CSS transition обрабатывает изменение (из состояния А в состояние В) более элегантно, чем при помощи анимации.
Чтобы получить больше информации кликни по уроку CSS часы.
Заключение
Transition для создания плавного перехода от одного состояния к другому, а animation для более сложной последовательности серии передвижений.
Как правило, transition легче создавать и управлять им, а также использовать у большинства случаев. Если нужно больше контроля над анимированным элементом через серию шагов (этапов) или если при анимации необходимо начать после загрузки, то анимация с ключевыми кадрами(@keyframes) вполне более предпочтительна.
CSS-анимация | Могу ли я использовать… Таблицы поддержки для HTML5, CSS3 и т. д.
Могу ли я использовать
Поиск?
CSS-анимация
— ВД- global»>
Глобальное использование
98,66% + 0,02% знак равно 98,68%Комплексный метод анимации некоторых свойств элемента
Хром
- 4 — 42: Supported
- 43 — 107: Supported
- 108: Supported
- 109 — 111: Supported
Edge
- 12 — 106: Supported
- 107: Supported
Safari
- 3.1 — 3.2: не поддерживается
- 4 — 5: Частичная поддержка
- 5.1 — 8: Поддерживается 52% — Supported»> 9 — 16,0: Поддерживается
- 16.1: Поддерживается
- 16,2 — TP: поддержан
Firefox
- 988888888888888888888888888888888888888888888888888888888888888 2 — 40015
- 5 — 15: Поддерживается
- 16 — 106: Поддерживается
- 107: Поддерживается
- 108 — 109: Поддерживается
- 9 — 11,6: не поддержал
- 12: Поддержка 06% — Not supported»>.
- 15 — 29: Поддержано
- 30 — 91: Поддержано
- 92: Поддерживается
- 5,5 — 9: не поддерживается
- 10: поддержан
- 11: Поддерживается
- 107: Supported
- 3.2 — 5.1: Partial support 02% — Supported, requires this prefix to work: -webkit-«> 6 — 8.4: Supported
- 9 — 16.0: Supported
- 16.1: Supported
- 4 — 18.0: поддержан
- 19.0: Поддерживается
- Все: не поддерживается
- 10 — 12: не поддерживается
- 12.1: Поддержка
- 12.1: Поддержка0015
- 13.4: Supported
- 2. 1 — 3: Partial support
- 4 — 4.4.4: Supported
- 107: Supported
- 106: поддержан
- 13.1: Поддержано
- 13.18: Поддерживается
- Ресурсы:
- Запись в блоге об использовании
- WebPlatform Docs
198888888888888888888888 2 — 40015
. Не поддерживается
Opera
IE
.0014
Safari on iOS
Samsung Internet
Opera Mini
Opera Mobile
8 71: не поддерживается
UC Browser for Android
Android Browser
Firefox for Android
QQ Browser
Baidu Browser
KAIOS Browser
- 1174 2.5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5: 5,
.0015
CSS | Анимации | Codecademy
Открыть значокРедактировать на GitHub
Анимация CSS позволяет элементу HTML постепенно переходить из одного стиля в другой без использования JavaScript. Любое количество свойств CSS может быть изменено любое количество раз.
Чтобы использовать анимацию CSS, необходимо указать некоторые ключевые кадры для анимации.
@keyframes
Правило Ключевые кадры содержат стили CSS, которые элемент будет иметь в определенное время. При указании стилей в правиле @keyframes
анимация будет постепенно меняться от текущего стиля (стилей) к новому стилю (стилям).
Чтобы анимация заработала, анимация должна быть привязана к элементу и должна быть определена
длительность анимации. В этом примере кода элемент будет загружаться фиолетовым цветом и постепенно станет желтым в течение 5 секунд.
/* Анимация */
@keyframes color-change {
from {
color: Purple;
}
25% {
цвет: оранжевый;
}
50% {
цвет: красный;
}
75% {
цвет: синий;
}
до {
цвет: желтый;
}
}
/* Элемент */
h2 {
цвет: фиолетовый;
имя-анимации: изменение цвета;
продолжительность анимации: 5 с;
}
Анимации
- @keyframes
- Управляет анимацией с несколькими промежуточными шагами, определяя значения свойств для каждого ключевого кадра.
- анимация
- Сокращенное свойство, которое устанавливает анимацию для элемента.
- анимация-задержка
- Определяет, когда начинается анимация.
- анимация-направление
- Определяет, выполняется ли анимация вперед или назад в некоторых или во всех циклах.
- animation-duration
- Определяет продолжительность анимации.
- animation-fill-mode
- Определяет, какие значения применяются анимацией вне времени ее выполнения.
- animation-iteration-count
- Определяет, сколько раз запускается анимация.
- имя-анимации
- Определяет разделенный запятыми список анимаций для применения к данному селектору.
- animation-play-state
- Определяет, запущена анимация или приостановлена.
- функция синхронизации анимации
- Определяет кривую ускорения для каждого ключевого кадра в одной анимации.