Image Image Image Image Image Image Image Image Image Image

Блог Indigo | 21.09.2018

Наверх

Наверх

Свойство transition-duration

На предыдущей странице мы узнали о первом свойстве семейства transition из четырех — transition-property, которое позволяет выбирать, на какие свойства будет распространяться переход. Теперь настало время познакомиться со следующим — transition-duration.

Свойство transition-duration определяет, сколько времени должен длиться переход от одного состояния к другому. Именно оно обеспечивает плавность анимации. По умолчанию переход происходит мгновенно.

В качестве значения указывается время в секундах либо миллисекундах. Время записывается целым либо дробным числом, после которого следует приставка s (для секунд) или ms (для миллисекунд). Пробел между числом и приставкой не ставится.

transition-duration: 0.6s; /* эта запись эквивалентна нижней */
transition-duration: .6s; /* ноль перед точкой можно опускать */

Вернемся к нашему примеру из предыдущего урока. Нам необходимо добавить плавность для перехода между стилями ссылки. Предположим, мы хотим, чтобы переход длился одну секунду. Добавим одну строчку к уже готовому стилю:

a {
    display: inline-block;
    width: 200px;
    padding: 10px;
    text-align: center;
    text-decoration: none;
    background-color: #9b20ff;
    color: #fafafa;
    transition-property: color, background-color;
    transition-duration: 1s; /* добавляем длительность перехода */
}
a:hover {
    color: #9b20ff;
    background-color: #c9ff20;
    letter-spacing: 2px;
}

Теперь наш переход работает так, как нужно:

CSS transition-duration

Вы наверняка заметили, что мы указали еще один стиль для состояния при наведенном курсоре — это letter-spacing: 2px. Как видно на анимации выше, расстояние между буквами меняется резко, без плавности. Так происходит потому, что мы не указывали это свойство в значении transition-property.

Чтобы сделать плавной смену свойства letter-spacing, можно пойти двумя путями: либо добавить его в список значений transition-property, либо изменить значение transition-property на all. Во втором случае плавный переход станет распространяться на все анимируемые свойства (конечно, в том случае, если они будут добавлены). Ключевое слово all упрощает запись, но оно не подойдет, если нужно исключить какое-то свойство из анимации.

Своя скорость для каждого свойства

Если вы перечислили свойства в transition-property, вы можете указать соответствующую длительность перехода для каждого из них. Порядок указания значений длительности должен соответствовать порядку перечисления свойств. Например:

transition-property: color, background-color, letter-spacing;
transition-duration: 1s, .5s, 2s;

Такая запись будет означать, что свойство color перейдет от своего начального значения к конечному за одну секунду, background-color — за половину секунды, а letter-spacing — за две секунды.


Далее в учебнике: свойство transition-timing-function.