CSS-переходы и CSS-анимация имеют много общего. Однако у них также есть существенные различия, с помощью которых вы сможете определить, какой из этих эффектов лучше всего подходит вашему проекту.
В 1-ой части нашей статьи мы подробно рассказали вам о CSS-переходах и начали делиться примерами этого эффекта. В этой части мы рассмотрим еще несколько примеров CSS-переходов, расскажем, что такое CSS-анимация, а также выделим различия между этими эффектами.
В приведенном ниже примере количество нажатий пробела пользователем «записывается», благодаря комбинации CSS и JavaScript. Число вернется к 0, когда пользователь нажмет кнопку «Restart».
При наведении курсора на элемент ниже стрелка становится прямоугольником, поэтому текст «Let’s Go!» становится похож на кнопку.
Если вы создали переход, но он не работает должным образом, вы можете попытаться это исправить с помощью советов из списка ниже:
Свойство transition-property указывает имя свойства CSS, к которому применяется переход. Это свойство может быть определено ключевым словом «all».
«All» указывает на то, что все свойства должны быть преобразованы. Однако, если для свойства установлено значение «none», то никакое свойство не будет передано.
Свойство transition-duration указывает продолжительность перехода. Может быть установлено любое положительное значение. Если свойство не определено, то значение будет считаться нулем секунд.
Элемент по-прежнему будет переходить из одного состояния в другое, но изменение будет мгновенным — анимации не будет. Отрицательное значение делает объявление недействительным, поэтому предполагается, что свойство не определено.
Ниже рассмотрим идеальные варианты использования переходов вместо анимации:
Анимация более сложна в создании, но более гибка в использовании. С помощью CSS-анимации вы можете создавать различные этапы, которые несколько раз будут менять поведение элемента. Это даст вам больше контроля над значениями свойств в анимации.
Для этого вам необходимо определить набор ключевых кадров. Ключевые кадры определяют начало и конец анимации, а также любые промежуточные шаги между началом и концом.
Другими словами, каждый ключевой кадр описывает, как анимированный элемент должен отображаться в данный момент во время последовательности анимации. Вы можете установить любое количество ключевых кадров.
Благодаря этим возможностям вы можете создавать анимацию HTML5, которая может конкурировать с анимацией, созданной с помощью передовых инструментов, таких как Flash.
Анимация также позволяет указывать значения свойств в каждом ключевом кадре без необходимости их объявления. Элемент плавно меняет поведение при достижении нужного ключевого кадра, даже если свойство не было указано в начале.
Чтобы создать переход, вы можете использовать сокращенное свойство анимации или комбинацию нижеприведенных подсвойств. Вам потребуются только свойство animation-name и animation-duration. Если другие свойства не указаны, для них будут установлены значения по умолчанию:
В отличие от переходов, которые воспроизводятся только один раз после запуска, анимация CSS не требует запускающего действия и может быть зациклена.
Вы можете сделать так, чтобы она повторялась бесконечное количество раз с помощью свойства animation-iteration-count, которое позволяет вам установить значение в количестве секунд или в бесконечности.
Также есть способ создать цикл перехода CSS с помощью события transitionEnd. Однако проще всего при создании анимации добавлять цикл.
Ниже приведен пример CSS-анимации. Есть несколько состояний, через которые проходит графика, а в конечном итоге она зацикливается. Пар в кружке сжимается в размерах, поднимается вверх и исчезает. Это изображение гораздо более динамично, чем CSS-переход.
Ниже рассмотрим идеальные варианты использования анимации вместо переходов:
Источник: hubspot.com
Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:
Способы обработки персональных данных могут быть любыми, включая сбор, систематизацию, накопление, хранение, уточнение, обновление, изменение, воспроизведение, обезличивание, блокирование и уничтожение.
Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).
Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.
Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.