Цикл уроков о переходах CSS3, часть 4: Продвинутые способы переходов
3 февраля 2015 | Опубликовано в css | Нет комментариев »
В последней части цикла уроков о переходах CSS мы рассмотрим несколько более продвинутых вариантов переходов. Вы уже наверняка читали публикации предыдущих трех частей и нашли много интересного. Если же вы их не видели, ищите ссылки в нижней части страницы.
Несимметричные переходы
В наших предыдущих примерах мы применяли одно свойство перехода, которое использовалось и при изменении состояния от начала к концу, т. е., состоянию при наведение указателя мыши, и при возвращении от конечного состояния к начальному, например:
p#animate { color: #ff6; transition: all 3s ease-in-out 0.5s; } p#animate:hover { color: #0f0; transform: scale(4); }
Заметьте, что приставка производителя не показана, но нужна для свойств переходов и трансформаций.
В этом примере, если навести указатель мыши на элемент хотя бы на 0,5 секунды, он вырастет в четыре раза и изменит цвет за 3 секунды. А после отодвигания указателя мыши с элемента по прошествии 0,5 секунд все вернется за 3 секунды к начальному состоянию.
Но что, если нужно, чтобы элемент вернулся к начальному состоянию мгновенно? К счастью, можно применить два разных перехода — один для анимации между начальным и конечным состояниями, а второй для обратной анимации между конечным и начальным состояниями:
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; }
Посмотрите демонстрацию работы несимметричного перехода.
Здесь показан элемент, который растет до конечного состояния медленно, а к начальному состоянию возвращается быстро. Обратите внимание, что свойство перехода применяется к состоянию, когда элемент движется вперед. Таким образом, у состояния при наведении указателя мыши, т. е., конечного состояния, продолжительность три секунды, а у нормального, т. е., начального состояния, продолжительность полсекунды.
Множественные переходы
К разным свойствам 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%; }
Посмотрите демонстрацию работы множественного перехода.
Вкратце, мы задали три отдельных перехода для состояний при наведении указателя мыши на элемент:
- Удваивание ширины с 10em до 20em за одну секунду с помощью временной характеристики перехода ease.
- Изменение радиуса границы с 5px до 50% за две секунды с помощью временной функции ease-out.
- Изменение цвета фона с красного на голубой за пять секунд с помощью временной функции linear.
Вы можете обратить внимание, что цвет фона продолжает меняться в течение как минимум трех секунд после завершения выполнения других анимаций.
Значения берутся по кругу, если их не задать, например:
p#animate { transition-property: width, border-radius, background-color; transition-duration: 1s, 2s; transition-timing-function: ease; }
- Ширина анимируется в течение одной секунды с помощью временной характеристики перехода ease.
- Радиус границы анимируется в течение двух секунд с помощью временной функции ease.
- Цвет фона анимируется в течение одной секунды с помощью временной характеристики перехода ease.
Если Вы изучили все уроки этой серии, Вы знаете буквально все, что следует знать о переходах CSS3.
Автор урока Craig Buckler
Смотрите также:
Похожие статьи
- Цикл уроков о переходах CSS3, часть 1: Основы. Что такое переходы?
- Использование множественных фоновых изображений CSS: основы
- Создание элементов, расположенных ровно по центру, с высотой и шириной, заданными в процентах
- Использование плавной прокрутки и ее недостатки
- Использование тега span для разделения слов в ссылках в CSS