Медленное изменение цвета css

Transition

Свойство transition используется для управления скоростью изменения CSS свойств. Например, при наведении курсора мыши на кнопку, вы хотите сделать ее темнее. Но чтобы изменение цвета произошло не мгновенно, а плавно, в течение 200 миллисекунд.

По сути, это способ задать замедление при переходе элемента из одного состояния в другое.

Transition включает в себя следующие подсвойства (указываются или в одну строку в данном порядке без запятых, или отдельно, сохраняя порядок значений относительно перечисленных свойств в transition-property):

Подсвойство Значение по умолчанию
transition-property all
transition-duration 0s
transition-timing-function ease
transition-delay 0s
div < transition: margin-left 0.4s ease-in-out 0.2s; > 

Данный код означает, что для всех элементов div , при изменении свойства margin-left , такое изменение будет происходить постепенно в течение 400 миллисекунд (с задержкой 200 миллисекунд), используя функцию ease-in-out .

Transition может применяться ко всем элементам, а также псевдоэлементам ::before и ::after .

Измененное состояние элемента может быть определено через :hover , :active или дополнительный класс.

Примечание:

Transition поддерживает описание нескольких анимаций, в таком случае они перечисляются через запятую.

(в одну строку записан transition для свойств background-color, transform и border-radius)

.el < width: 100px; height: 100px; margin: 50px; background-color: mediumseagreen; transition: background-color 0.5s ease-in-out 0.3s, transform 1s, border-radius 1s; > .el:hover < transform: rotate(180deg); background-color: lightcoral; border-radius: 50%; > 

Результат будет выглядеть так:

transition-property

Свойство transition-property указывает одно или несколько имен свойств, для которых применяется замедление перехода из одного состояния в другое.

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

Если необходимо применить анимацию ко всем изменяемым свойствам, используйте значение all

или не указывайте его вообще, так как all является значением по умолчанию:

Важно!

Избегайте применения transition к свойствам с значением auto. Это может привести к непредсказуемым последствиям из-за разной поддержки данного значения браузерами.

transition-duration

Данное свойство указывает продолжительность перехода (в секундах).

div class="el el-1">0.2s div> div class="el el-2">0.5s div> div class="el el-3">1.2s div> 
.el < width: 100px; height: 100px; margin-top: 50px; > .el:hover < margin-left: 50px; > .el-1 < background-color: green; transition: margin-left 0.2s; > .el-2 < background-color: red; transition: margin-left 0.5s; > .el-3 < background-color: blue; transition: margin-left 1.2s; > 

transition-timing-function

Данное свойство описывает функцию, по которой вычисляются промежуточные значения свойств.

Значения transition-timing-function:

linear анимация проходит линейно, без ускорений и замедлений
Функции Безье
ease значение по умолчанию, анимация проходит плавно с небольшим замедлением в начале и к завершению
ease-in анимация замедлена в начале и ускоряется к завершению
ease-out анимация ускорена в начале и замедляется к завершению
ease-in-out анимация ускоряется к середине и замедлена в начале и к завершению
Пошаговые функции
step-start делит анимацию на 1 интервал (шаг) и запускает её в начале временного отрезка, аналогично steps(1, start)
step-end делит анимацию на 1 интервал и запускает её в конце временного отрезка, аналогично steps(1, end)
steps( integer, step-position) ступенчатая функция, принимает два параметра: количество шагов и положение шага

Рассмотрим эти свойства на практике.

Функции Безье используются для плавной анимации. Они позволяют задавать неравномерную скорость изменения элемента, например, ускорение и замедление.

Ниже приведены наглядные примеры передвижения блоков с одинаковой продолжительностью анимации и разными значениями timing-function.

(продолжительность анимации у всех блоков 2 секунды — 2s )

Пошаговые функции используются для «прерывистого» изменения элемента. Они разбивают полную продолжительность анимации на равные интервалы и фиксируют промежуточное состояние.

(продолжительность анимации 0.5s )

Вернемся к пошаговой функции steps( integer, step-position). Integer — целое число больше 0, указывающее количество шагов (однако, если вторым параметром является jump-none , то integer должен быть больше 1). Положение шага (step-position) — необязательный параметр, указывает момент, в который начинается анимация, имеет следующие значения:

step-position
jump-start анимация начинается с нулевого отрезка времени
start аналогично jump-start
jump-end анимация начинается с первого отрезка времени
end аналогично jump-end
jump-none продолжительность функции делится на (iteration + 1), анимация начинается и заканчивается паузой длинной в один отрезок
jump-both продолжительность функции делится на (iteration + 1), анимация начинается и заканчивается шагом

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

(продолжительность анимации — 2 секунды 2s , количество шагов — 4 )

transition-delay

Данное свойство определяет задержку старта анимации.

div class="el el-1">0s div> div class="el el-2">0.6s div> 
.el < transition-duration: 0.5s; > .el-2 < transition-delay: 0.6s; > 

(у первого блока transition-delay не указан, у второго — 0.6s , анимация начинается через 0.6 секунд)

Порядок значений

Если подсвойства transition указывать раздельно, их значения будут соответствовать порядку transition-property .

div < width: 100px; height: 50px; transition-property: width, height; transition-duration: 0.5s, 0.3s; > 

Для width transition-duration будет равен 0.5s, для height — 0.3s.

Если какой-то из списков свойств длиннее, чем transition-property, то он обрезается:

div < width: 100px; height: 50px; transition-property: width, height; transition-duration: 0.5s, 0.3s, 0.1s; > /* width 0.5s, height 0.3s */ 

Если же он короче, то недостающие значения дублируются из начала списка:

div < transition-property: width, height, margin-left; transition-duration: 1s, 0.2s; > /* width 1s, height 0.2s, margin-left 1s */ 
div < transition-property: width, height, margin-left, opacity, color; transition-duration: 1s, 0.2s, 0.5s; > /* width 1s, height 0.2s, margin-left 0.5s, opacity 1s, color 0.2s */ 

Поддержка браузерами

Transition поддерживается всеми современными браузерами.

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

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

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

results matching » «

No results matching » «

Источник

Читайте также:  Pylint import error python
Оцените статью