transition-property: width; /* 변화 탐지 */ transition-duration: 2s; /* 변화에 걸리는 시간 */ transition-timing-function: linear; /* 변화율 조정속성 */ transition-delay: 1s; /* 변화 시작시간 */
다음과 같이 한번에 쓸 수 있다. transition: width 2s linear 1s;
width와 height에 대한 변환 시간, 나머지에 대한 변환시간을 따로따로 지정할 수 있다. transition:width 0.3s, height 1s, 0.5s;
width가 변하는 시간은 0.3s, height가 변하는 시간은 1s 진행, 그리고 나머지 변화시간(회전, 위치이동)은 0.5s 간 진행.
transition-property 가 생략되면 width, height 를 포함한 모든 변화에 대해 적용,
transition-timing-function에 대해선 아래에서 설명.
timing-function
다음과 같은 값을 가질 수 있다.
ease : 조금 부드럽고 빠르게 속성값에 진입하여 천천히 부드럽게 멈춘다(기본값)
linear : 물리시간에 등.속.운.동이라고 배운 일.직.선 운동이다.
ease-in : 천천히 부드럽게 시작하여 점점 빠르게 속성값에 다다른다.
ease-out : ease-in 과 반대로 빠르게 시작하여 점점 천천히 도달한다.
ease-in-out : ease-in 으로 시작하여 ease-out 으로 끝나는 운동, 천천히 부드럽게 시작하여 점점 빠르게 도달할 즈음 속도를 줄여 부드럽게 멈춘다.
@keyframes
A상태에서 B 상태로 가도록 from, to 설정을 할 수 있다.
1 2 3 4 5 6 7 8 9
@keyframes example{ /* A상태에서 B 상태로 */ from { /* A */ background-color: green; } to { /* B */ background-color: red; } }
물론 브라우저마다 지원 키워드가 다름으로 @-webkit-keyframes 처럼 접두어를 붙여야한다.