В заключительной части этой серии о переходах CSS3 мы рассмотрим несколько более продвинутых тем перехода.
Альтернативные реверсивные переходы
В наших предыдущих примерах мы применили единственное свойство перехода, которое используется при переходе из состояния начала в конец (зависания) и в обратном направлении из конца в состояние начала, например
p#animate
{
color: #ff6;
transition: all 3s ease-in-out 0.5s;
}
p#animate:hover
{
color: #0f0;
transform: scale(4);
}
(Обратите внимание, что префиксы -webkit не отображаются, но в настоящее время необходимы для перехода и преобразования.)
В этом примере, если вы наведите курсор мыши на элемент не менее чем на 0,5 секунды, он увеличится в 4 раза и изменит цвет в течение трех секунд. Когда вы перемещаете курсор от элемента, он будет ждать еще 0,5 секунды, а затем вернется в исходное состояние в течение трех секунд.
Но что, если мы хотим, чтобы элемент мгновенно вернулся назад? К счастью, мы можем применить два разных перехода; один для анимации между начальным и конечным состоянием, и один для реверсивной анимации между конечным и начальным состоянием:
p#animate
{
color: #ff6;
transition: all 0.5s ease-in-out;
}
p#animate:hover
{
color: #0f0;
transform: scale(4);
transition: all 3s ease-in-out 0.5s;
}
Посмотрите переходную демонстрационную страницу…
Это иллюстрирует элемент, который медленно переходит в конечное состояние, но быстро возвращается в начальное состояние. Обратите внимание, что свойство transition
Следовательно, наше: hover (конечное) состояние имеет продолжительность три секунды, а нормальное (начальное) состояние имеет продолжительность 0,5 секунды.
Несколько переходов
К отдельным свойствам CSS могут применяться различные эффекты перехода. Это лучше всего иллюстрируется на примере:
p#animate
{
width: 10em;
background-color: #F00;
border-radius: 5px;
transition-property: width, border-radius, background-color;
transition-duration: 1s, 2s, 5s;
transition-timing-function: ease, ease-out, linear;
}
p#animate:hover
{
width: 20em;
background-color: #00F;
border-radius: 50%;
}
Просмотрите страницу демонстрации нескольких эффектов перехода …
По сути, мы определили три отдельных перехода при наведении на элемент:
-
width
-
border-radius
-
background-color
Вы заметите, что цвет фона продолжает меняться, по крайней мере, три секунды после завершения других анимаций.
Цикл значений, если вы их опускаете, например
p#animate
{
transition-property: width, border-radius, background-color;
transition-duration: 1s, 2s;
transition-timing-function: ease;
}
-
width
-
border-radius
-
background-color
Если вы следили за этой серией, теперь вы знаете почти все, что нужно знать о переходах CSS3. Надеюсь, вы разработаете лучшие примеры, чем те, которые я здесь показал!