Разное

Webkit transition css: Using CSS transitions — CSS: Cascading Style Sheets

27.04.2020

transition | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
10.0+1.0+26.0+11.6+12.10+3.0+4.0+16.0+2.12.0+

Краткая информация

Значение по умолчаниюall 0s ease 0s
НаследуетсяНет
ПрименяетсяКо всем элементам, к псевдоэлементам ::before и ::after
Процентная записьНеприменима
Ссылка на спецификациюhttp://dev.w3.org/csswg/css3-transitions/#transition

Версии CSS

CSS 1CSS 2CSS 2.1CSS 3

Описание

Универсальное свойство, которое позволяет одновременно задать значения transition-property, transition-duration, transition-timing-function и transition-delay. Устанавливает эффект перехода между двумя состояниями элемента, они могут быть определены с помощью псевдоэлемента :hover или :active, а также динамически через JavaScript.

Синтаксис

transition: <переход> [, <переход> ]*

Здесь:

<переход> = [ none | <transition-property> ] || <transition-duration> ||
<transition-timing-function> || <transition-delay>

Значения

none
Отменяет эффект перехода.

Пример

HTML5CSS3IE 10+CrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>transition</title>
  <style>
   #bar {
    top:-5.5em; right:5em; /* Положение */
     padding: .5em; /* Поля */
     margin: 0; /* Отступы */
     position: absolute; /* Абсолютное позиционирование */
     width: 2em; /* Ширина */
     background: #333; /* Цвет фона */
     color: #fff; /* Цвет текста */
     text-align: center; /* Выравнивание по центру */
     /* Переход */
     -webkit-transition: top 1s ease-out 0. 5s;
     -moz-transition: top 1s ease-out 0.5s;
     -o-transition: top 1s ease-out 0.5s;
     transition: top 1s ease-out 0.5s;
    }
   #bar:hover { top: 0; }
  </style>
 </head>
 <body>
  <ul>
   <li>1</li><li>2</li>
   <li>3</li><li>4</li>
   <li>&darr;</li>
  </ul>
 </body>
</html>

В данном примере при наведении курсора на стрелку, раскрывается блок с числами.

Объектная модель

[window.]document.getElementById(«elementID»).style.transition

Браузеры

Chrome до версии 26.0, Safari, Android и iOS поддерживают нестандартное свойство -webkit-transition.

Opera до версии 12.10 поддерживает нестандартное свойство -o-transition.

Firefox до версии 16.0 поддерживает нестандартное свойство -moz-transition.

Анимация

CSS по теме

  • transition

Статьи по теме

  • Иконки из символов
  • Полоски при наведении

Рецепты CSS

  • Как плавно изменить цвет ссылки?

webkit-transition-delay — свойство css :: руководство cssdot.

ru
timeThe time to begin executing a transition after it is applied. If 0, the transition executes as soon as the property changes. Otherwise, the value specifies an offset from the moment the property changes, and the transition delays execution by that offset. If the value is negative, the transition executes the moment the property changes but appears to begin at the specified negative offset—that is, begins part-way through the transition. Nonzero values must specify a unit: s for seconds, ms for milliseconds. Negative values are invalid. The default value is 0.

nowThe transition begins immediately.Available in iOS 2.0 and later.

Свойство -webkit-transition-delay относится к спецификации CSS, применяется к все элементы, и псевдоэлементы :before и :after, и действует на всех визуальный носителях, его значение не наследуется от родительского элемента в иерархии документа, Является расширением движка WebKit (браузеры Chrome и Safari), и не совместимо с другими браузерами.

Смотри также:

  • transition — свойства анимационного перехода
  • transition-property — имя css-свойства, к которому будет применен анимационный переход.
  • transition-duration — длительность анимационного перехода
  • transition-timing-function — функция зависимости значения css-свойства от времени во течении анимационного перехода
  • transition-delay — задержка перед выполнением анимационного перехода
  • -moz-transition — свойства анимационного перехода
  • -moz-transition-property — имя css-свойства, к которому будет применен анимационный переход.
  • -moz-transition-duration — длительность анимационного перехода
  • -moz-transition-timing-function — функция зависимости значения css-свойства от времени во течении анимационного перехода
  • -moz-transition-delay — задержка перед выполнением анимационного перехода
  • -webkit-transition — свойства анимационного перехода
  • -webkit-transition-property — имя css-свойства, к которому будет применен анимационный переход.
  • -webkit-transition-duration — длительность анимационного перехода
  • -webkit-transition-timing-function — функция зависимости значения css-свойства от времени во течении анимационного перехода
  • -o-transition — свойства анимационного перехода
  • -o-transition-property — имя css-свойства, к которому будет применен анимационный переход.
  • -o-transition-duration — длительность анимационного перехода
  • -o-transition-timing-function — функция зависимости значения css-свойства от времени во течении анимационного перехода
  • -o-transition-delay — задержка перед выполнением анимационного перехода
  • Спецификация стандарта CSS 3
  • Описание на Safari Developer Library

Краткое описание

задержка перед выполнением анимационного перехода

Синтаксис:

&lt;длительность&gt; [, &lt;длительность&gt;]*

По умолчанию:
Применяется к:

все элементы, и псевдоэлементы :before и :after

Наследование:

не наследуется

Тип носителя:

визуальный

Объектная модель документа (DOM):

[элемент]. style[‘-webkit-transition-delay’]


Кроссбраузерная совместимость

Internet Explorer
не поддерживается
Firefox
не поддерживается
Chrome
Safari
Opera
не поддерживается

CSS-анимация | WebKit

У нас есть еще одна интересная новая функция CSS, о которой стоит поговорить: анимация, указанная в CSS. Здесь предстоит многое осветить, поэтому сначала мы начнем с основ.

Самый простой вид анимации, для которого мы добавили поддержку, называется переходом . Обычно, когда значение свойства CSS изменяется, отображаемый результат мгновенно обновляется, при этом рассматриваемый элемент немедленно меняется со старого значения свойства на новое значение свойства. Переходы описывают, как вместо этого выполнять анимацию из старого состояния в новое с течением времени.

Переходы задаются с помощью следующих свойств:

свойство перехода — Какое свойство должно анимировать, например, непрозрачность.
transition-duration – Как долго должен длиться переход.

transition-timing-function — Функция синхронизации для перехода (например, линейная, упрощенная или пользовательская кубическая функция Безье).
transition — сокращение для всех трех свойств.

Вот простой пример:

дел {
  непрозрачность: 1;
  -webkit-transition: непрозрачность 1с линейная;
}
раздел:наведите {
  непрозрачность: 0;
}
 

Этот div будет исчезать при наведении курсора. В браузерах, которые не поддерживают эту анимацию, будет плавная деградация, так как div просто исчезнет сразу.

Каждое из этих свойств поддерживает список значений, разделенных запятыми, например несколько фонов CSS3, что позволяет описывать различные переходы для отдельных свойств в одном правиле стиля. Каждое значение в списке соответствует значению в той же позиции в других свойствах.

Например:

дел {
  -webkit-transition-property: непрозрачность слева;
  -webkit-transition-duration: 2с, 4с;
}
 

В приведенном выше правиле стиля непрозрачность будет анимироваться в течение 2 секунд, а левое — в течение 4 секунд.

Некоторые очень сложные свойства можно анимировать. Возьмем, к примеру, новое свойство -webkit-transform . Вот пример простого эффекта вращения с использованием -webkit-transform

и -webkit-transition .

<дел
 >
Этот div будет вращаться при нажатии!

Этот div будет вращаться при первом нажатии!

Границы также можно анимировать. Следующий блок имеет простую анимацию границы, где граница будет увеличиваться в толщину и менять цвет при наведении курсора на блок.

Этот элемент div будет иметь более толстую синюю рамку при наведении курсора.

Обратите внимание, что в примерах с наведением анимация изменится на противоположную, когда мышь выйдет из div. Каждый раз, когда свойство изменяет значение, анимация просто начинается снова с текущей позиции в качестве исходного значения и нового значения в качестве места назначения. Свойства перехода исходного состояния используются, чтобы понять, как анимировать новое целевое состояние.

Ключевые моменты, которые необходимо понять о переходах:
(1) Это неявные анимации. Сценарии и таблицы стилей можно писать как обычно, а анимация будет происходить неявно, когда свойства изменяют значения.
(2) Они изящно деградируют. Браузеры, не поддерживающие переходы, просто не будут анимировать, но в остальном весь код и правила стиля могут остаться прежними.

Вот более подробное описание свойств. Все эти свойства могут принимать несколько значений, разделенных запятыми.

свойство перехода


Значения: нет | все | <свойство>
Исходное значение: все
Описание: Указывает, какое свойство запускает анимацию. Значение none означает отсутствие перехода. Значение all означает, что каждое анимируемое свойство запускает анимацию. В противном случае анимация будет запускаться только тогда, когда точно указанное свойство изменяет значение.

длительность перехода
Значения: <время>
Исходное значение: 0
Описание: Указывает, сколько времени должен занять переход. По умолчанию 0.

функция времени перехода

Значения: легкость | линейный | облегчение | облегчение | легкость в выходе | cube-bezier(x1, y1, x2, y2)
Начальное значение: easy
Описание: Свойство transition-timing-function описывает, как анимация будет происходить во времени. Ключевые слова могут использоваться для общих функций, или контрольные точки для кубической функции Безье могут быть заданы для полного контроля функции перехода. Чтобы указать кубическую функцию Безье, вы задаете значения X и Y для двух контрольных точек кривой. Точка P0 неявно устанавливается в (0,0), а P3 неявно устанавливается в (1,1). Эти 4 точки используются для вычисления кубической кривой Безье.

Ключевые слова функции синхронизации имеют следующие определения:

linear — Линейная функция просто возвращает в качестве вывода полученный ввод.
по умолчанию легкость — функция по умолчанию, легкость, эквивалентна кубическому безье (0,25, 0,1, 0,25, 1,0).
easy-in — функция easy-in эквивалентна кубическому безье (0,42, 0, 1,0, 1,0).
easy-out — функция easy-out эквивалентна кубическому безье (0, 0, 0,58, 1,0).
easy-in-out — функция easy-in-out эквивалентна кубическому безье (0,42, 0, 0,58, 1,0)
cube-bezier — определяет кривую кубического Безье, точки P0 и P3 которой равны (0,0) и (1,1) соответственно. Четыре значения определяют точки P1 и P2 кривой как (x1, y1, x2, y2).

В следующих постах я расскажу о переходах более подробно, а также расскажу о еще одной функции, которую мы добавляем: явной анимации. Мы также готовим более подробное предложение (полное пугающих спецификаций), в котором изложены наши мысли о трансформациях, анимации и других продвинутых визуальных эффектах.

[1 декабря 2008 г. — обновлены значения функции синхронизации, чтобы отразить новую реализацию. «по умолчанию» теперь называется «простота». Подробности см. в спецификации CSS-переходов.]

CSS-переходы | CSS-переходы, CSS-преобразования и CSS-анимация

Поддержка браузером переходов CSS

1. 0

3.2

4.0

10

10.5

Как использовать переходы

Если вы раньше не использовали переходы, вот краткое введение.

Добавьте к элементу, который хотите анимировать, следующий код CSS:

#id_of_element {
  -webkit-transition: все 1s easy-in-out;
  -moz-transition: все 1 с плавным входом-выходом;
  -o-переход: все 1 с плавным входом-выходом;
  переход: все 1 с облегчением входа-выхода;
}
 

Существует много дублирования из-за префиксов поставщиков — до тех пор, пока спецификация не будет завершена, это будет сохраняться. Если вас это беспокоит, существуют различные инструменты, такие как CSS Scaffold, LESS или, как я предпочитаю, SASS, которые позволяют вам определять примеси, чтобы избежать повторяющегося кода.

Другой подход состоит в том, чтобы просто написать CSS без префиксов, а затем использовать -prefix-free Леа Веру, чтобы добавить их во время выполнения.

Чего точно не следует делать, так это включать только префикс webkit. Как ни заманчиво, особенно при разработке для мобильных устройств, webkit — не единственный движок рендеринга!

Стоит также отметить, что для этих свойств нет префикса -ms- . IE10 был первым браузером, поставляемым без префикса. Однако в бета-версиях IE10 этот префикс использовался, поэтому вы можете увидеть код, использующий -мс-. Хотя это и не нужно.

Синтаксис довольно прост: вы указываете свойство, которое хотите анимировать, все или радиус границы, цвет или что-то еще, время выполнения, затем функцию синхронизации перехода. Варианты функции синхронизации показаны ниже.

Всякий раз, когда какое-либо свойство изменяется, оно будет анимироваться, а не изменяться напрямую. Это может быть связано с другим набором свойств, установленных для псевдокласса, например, при наведении курсора, или с новым классом или свойствами, установленными javascript. В приведенном ниже примере используется :hover для изменения свойств — JavaScript не требуется.

Чтобы увидеть разницу в скорости, посмотрите тест скорости.

Различные функции синхронизации

Ease

Ease
In

Ease
Out

Ease
In Out

Linear

Custom

Отлично!

Наведите на меня

В дополнение к встроенным функциям синхронизации вы также можете указать свои собственные. Отличный инструмент Ceaser CSS Easing Tool делает это очень легко.

Стоит отметить, что создаваемые вами кривые могут иметь отрицательные значения. Кривая Безье для последнего прямоугольника выше равна 9.0147 cube-bezier(1.000, -0.530, 0.405, 1.425) , отрицательные значения заставляют его «разбегаться», что выглядит довольно круто!

Задержки

Синтаксис перехода CSS3 имеет вид:

переход: [ <свойство-перехода> ||
               <длительность-перехода> ||
               <функция времени перехода> ||
               <задержка перехода> ]
 

Вы заметите, что последний параметр — это задержка — это позволяет запускать события после того, как произошло событие. Ниже приведена небольшая демонстрация, показывающая эту функциональность.

Задержки перехода

Наведите на меня

Это работает, просто добавляя задержку к каждому из разных кругов. Это так же просто, как добавить задержку перехода : 0,6 с; к элементу.

Дополнительные задержки

Вы можете настроить различную анимацию различных свойств. В этом примере обычный (синий) круг имеет следующий CSS (с соответствующими префиксами производителя):

.
#dd_main2 {
  переход: все 1 с облегчением входа-выхода;
}
 

Кружок «Пример 1» (зеленый) имеет вместо этого CSS:

#dd_main2 {
  свойство перехода: сверху, слева;
  длительность перехода: 1с, 1с;
  задержка перехода: 0 с, 1 с;
}
 

В то время как кружок «Пример 2» (красный) имеет вместо этого CSS:

#dd_main2 {
  свойство перехода: сверху, слева, радиус границы, цвет фона;
  длительность перехода: 2 с, 1 с, 0,5 с, 0,5 с;
  задержка перехода: 0 с, 0,5 с, 1 с, 1,5 с;
}
 

Это позволяет нам анимировать свойства независимо друг от друга, а это означает, что этот простой метод можно использовать для создания очень сложных анимаций.

Обычный

Пример 1

Пример 2

Наведите на меня

Анимируемые свойства

Что касается свойств, которые вы можете анимировать, лучше всего поэкспериментировать. W3C поддерживает список свойств, которые можно анимировать в спецификации CSS Transitions. К ним относятся все, от цвета фона и интервала между буквами до тени текста и минимальной высоты. Многие из этих свойств по умолчанию не поддерживаются анимацией jQuery, что делает переходы CSS гораздо более полезными. Кроме того, многие браузеры аппаратно ускоряют анимацию, не требующую перерисовки, а именно непрозрачность, 3D-преобразования и фильтры. Чтобы увидеть, какие методы ускоряет Webkit, взгляните на код AnimationBase.cpp из исходного кода Webkit. На момент написания здесь определены три класса: PropertyWrapperAcceleratedOpacity , PropertyWrapperAcceleratedTransform и PropertyWrapperAcceleratedFilter . Это анимации, которые Webkit ускоряет. Другие браузеры делают вещи по-другому, но поскольку Webkit популярен на мобильных устройствах, где эти вещи имеют наибольшее значение, стоит отметить этот особый случай.

На самом деле, браузеры позволяют анимировать больше свойств, чем это: box-shadow приходит на ум в качестве очевидного примера. Таблица ниже взята из приведенной выше ссылки и может рассматриваться как минимальное количество свойств, которые вы ожидаете анимировать.

Имя собственности Тип
цвет фона цвет
фоновое изображение только градиенты
фоновая позиция процентов, длина
цвет нижней границы цвет
ширина нижней границы длина
цвет рамки цвет
граница левая цвет
граница слева длина
граница правого цвета цвет
ширина правой границы длина
интервал между границами длина
цвет верхней границы цвет
ширина верхней границы длина
ширина границы длина
дно длина, проценты
цвет цвет
урожай прямоугольник
размер шрифта длина, проценты
вес шрифта номер
сетка-* различные
высота длина, проценты
слева длина, проценты
межбуквенный интервал длина
высота строки число, длина, процент
нижнее поле длина
поле слева длина
правое поле длина
верхнее поле длина
максимальная высота длина, проценты
максимальная ширина длина, проценты
минимальная высота длина, проценты
минимальная ширина длина, проценты
непрозрачность номер
цвет контура цвет
контур-смещение целое число
ширина контура длина
нижняя подкладка длина
прокладка левая длина
прокладка правая длина
обивка длина
справа длина, проценты
отступ текста длина, проценты
тень текста тень
верх длина, проценты
вертикальное выравнивание ключевые слова, длина, процент
видимость видимость
ширина длина, проценты
межсловный интервал длина, проценты
Z-индекс целое число
увеличение номер

В дополнение к этому, все браузеры с переходами поддерживают анимацию CSS-преобразований, что оказалось бесценным.