-
animation프로그래밍/HTML&CSS 2022. 9. 20. 19:26728x90
animation은 transition보다 더 쉽게 애니메이션 효과를 만들 수 있는 속성이다. animation은 연속적인 장면들(변화하는 지점)을 만드는 방법을 사용하며 이 연속된 지점들을 키프레임을 통해 지정할 수 있다. 먼저 @keyframes를 지정해주고 animation 속성으로 애니메이션 시간, 반복, 순방향 역방향 등을 정한다.
@keyframes
애니메이션의 장면들을 순서와 함께 지정하고 모아놓은 집합체라고 볼 수 있다.
@keyframes <이름> { <선택자> { <스타일> } }
@keyframes moving { from { width: 200px; background-color: gold; opacity: 0.5; /*투명도*/ transform: scale(0.5) rotate(30deg); } to { width: 400px; background-color: greenyellow; opacity: 1; transform: scale(1) rotate(0deg); } }
위 예시처럼 처음(from)과 끝(to)을 지정해줄 수 도 있고 그 사이 과정을 %를 활용하여 1%, 2%, … 100% 까지 지정할 수 도 있다.
animation 속성
종류 설명 세부 속성값 animation-name 애니메이션 이름을 설정 키프레임 이름 animation-fill-mode 애니메이션을 어떻게 처리할지 설정 forwards
(키프레임 100% 도달 시 마지막 키프레임 유지)animation-direction 애니메이션의 진행방향을 정하는 속성 reverse(역방향), | alternate(정방행 후 역방향) |
reverse-alternate(역방향 후 정방향)animation-iteration-count 애니메이션이 몇번 반복될지 설정 infinite(무한) | 숫자 animation-duration 애니메이션이 일어나는 시간 설정 시간 animation-timeing-function 애니메이션의 시작, 중간 ,끝에서 속도를 설정 linear | ease | ease-in | ease-out | ease-in-out .box { animation-name: moving; animation-duration: 3s; animation-iteration-count: infinite; animation-direction: alternate; }
이런 식으로 표현이 가능하고 animation 속성만 사용하여 단축시킬 수 있다. 위 코드를 animation만 활용하여 표현한다면,
.box { animation: moving 3s infinite alternate; }
이렇게도 가능하다.
위 애니메이션을 결과로 보자면, 아래 사진과 같이 이러한 형태로 반복하는 것을 확인할 수 있다. 애니메이션 예제는 직접 해봄으로써 결과를 확인해보기를 추천한다.
728x90'프로그래밍 > HTML&CSS' 카테고리의 다른 글
text-overflow (0) 2022.09.21 transition (0) 2022.09.19 벤더 프리픽스(vender prefix) (0) 2022.09.18 transform (0) 2022.09.18 시맨틱 태그 (0) 2022.09.17