Skip to content

CSS transition

garevna edited this page Apr 24, 2019 · 6 revisions

ico25 Атрибут transition

плавный переход элемента в новое состояние

Атрибут transition позволяет анимировать изменение значений CSS-атрибутов в течение заданного интервала времени

Изменение значений CSS-атрибутов происходит в результате определенного события

и может быть описано псевдоклассом,

например, :hover

Переходы применяются ко всем элементам, а также к псевдоэлементам :before и :after

property comment
transition-property Содержит название CSS-атрибута, к которому будет применен эффект перехода
Можно указать как один атрибут, так и перечень атрибутов через запятую
Если указать значение all, то эффект перехода будет применяться ко всем атрибутам стиля элемента
transition-duration Задаёт промежуток времени, в течение которого должен осуществляться переход
Если разные свойства имеют разные значения для перехода, они указываются через запятую
Если продолжительность перехода не указана, то анимация при смене значений свойств происходить не будет
transition-timing-function Свойство задаёт способ анимации перехода:
плавная анимация ( ease )
плавное начало ( ease-in )
плавное окончание ( ease-out )
плавное начало и плавное окончание ( ease-in-out )
линейная анимация перехода ( linear )
анимация перехода, описываемая функцией Безье ( cubic-bezier )
Если определять переходы для нескольких атрибутов стиля, можно задавать различные способы анимации для каждого из них
transition-delay Задержка перехода ( опционально )
Можно "отсрочить" начало перехода на заданное число секунд

cap-25 1

.animated {
    width: 100px;
    height: 100px;
    background: green;
    transition-property: width;
    transition-duration: 0.5s;
    transition-delay: 0.2s;
    transition-timing-function: ease-in-out;
}
.animated:hover {
    width: 200px;
}

Все это можно объединить в одном атрибуте transition:

.animated {
    transition: width 0.5s 0.2s ease-in-out;
}
.animated:hover {
    width: 200px;
}

cap-30 2

:root {
    --transition-duration: 3s;
    --trasition-delay: 0s;
    --bezier--positive: cubic-bezier(1.0, 0.8, 0.0, 0.9);
    --bezier--negative: cubic-bezier(1.0, -0.5, 0.4, 1.5);
    --width: max-content;
    --height: max-content;
    font-family: Arial;
    background: black;
}
.animated {
    position: relative;
    width: var(--width);
    height: var(--height);
    margin: 3rem;
    white-space: nowrap;
    border: solid 1px;
    padding: 1rem 2rem;
    transition-property: all;
    transition-duration: var(--transition-duration);
    transition-delay: var(--trasition-delay);
    -webkit-font-smoothing: antialiased;
}
.container:hover .animated {
    transform: translate(70vw, 0);
}
.bezier-positive {
    color: yellow;
    transition-timing-function: var(--bezier--positive);
}
.bezier-negative {
    color: magenta;
    transition-timing-function: var(--bezier--negative);
}
.linear {
    color: cyan;
    transition-timing-function: linear;
}
.ease-in-out {
    color: green;
    transition-timing-function: ease-in-out;
}
.ease-out {
    color: red;
    transition-timing-function: ease-out;
}
.ease-in {
    color: orange;
    transition-timing-function: ease-in;
}
.ease {
    color: lightblue;
    transition-timing-function: ease-in;
}
<div class="container">
    <div class="animated ease">Ease</div>
    <div class="animated ease-in">Ease In</div>
    <div class="animated ease-out">Ease Out</div>
    <div class="animated ease-in-out">Ease In Out</div>
    <div class="animated linear">Linear</div>
    <div class="animated custom">cubic-bezier</div>
    <div class="animated negative">cubic-bezier negative</div>
</div>

© Irina H.Fylyppova 2019



Занятие 1


Занятие 2


Занятие 3


Занятие 4


Занятие 5


Занятие 6


Занятие 7


Занятие 8


Дополнительно

Clone this wiki locally