Разница между облегчением и облегчением переходов CSS3 - PullRequest
96 голосов
/ 09 марта 2012

В чем разница между переходами CSS3 'ease-in, ease-out и т. Д .?

1 Ответ

211 голосов
/ 09 марта 2012

CSS3 переходы и анимации поддерживают замедление, формально называемое «функцией синхронизации». Наиболее распространенными являются ease-in, ease-out, ease-in-out, ease и linear, или вы можете указать свой собственный, используя cubic-bezier().

  • ease-in медленно запустит анимацию и завершится на полной скорости.
  • ease-out запустит анимацию на полной скорости, затем медленно завершит работу.
  • ease-in-out начнется медленно, будет самым быстрым в середине анимации, затем медленно закончится.
  • ease похоже на ease-in-out, за исключением того, что оно начинается немного быстрее, чем заканчивается.
  • linear не использует ослабление.
  • Наконец, вот отличное описание синтаксиса cubic-bezier, но, как правило, в этом нет необходимости, если вы не хотите каких-то очень точных эффектов.

По сути, замедление означает замедление до остановки, замедление - это медленное ускорение, а линейное - ни того, ни другого. Более подробные ресурсы можно найти в документации для timing-function по MDN .

А если вам нужны вышеупомянутые точные эффекты, то удивительная cubic-bezier.com от Lea Verou для вас! Это также полезно для графического сравнения различных функций синхронизации.

Другая, steps() функция синхронизации , действует как linear, но выполняет только конечное число шагов между началом и концом перехода. steps() был наиболее полезен для меня в анимации CSS3, а не в переходах; Хороший пример - загрузка индикаторов с точками. Традиционно для создания иллюзии движения используется серия статических изображений (скажем, восемь точек, по два цвета в каждом кадре). С анимацией steps(8) и преобразованием rotate вы используете движение для создания иллюзии отдельных кадров! Как весело.

...