[CSS] Animation, Transition, Transform

Gomao·2023년 3월 1일
0

Web programming

목록 보기
4/16

Animation

.animation {
	animation-name: changeWidth;  // keyframes에 정의할 이름
    animation-duration: 3s;       // 애니메이션 1주기 재상시간
    animation-timing-function: linear;  // 애니메이션 동작 속도
    animation-delay: 1s;          // 애니메이션 실행 대기시간
    animation-iteration-count: 6; // 애니메이션 반복 횟수
    animation-direction: alternate;     // to, from 반복 순서
}
    (=> animation: changeWidth 3s linear 1s 6 alternate;)
    이와같이 한줄로 포현도 가능하고, 순서는 위 항목 순서를 따름.

@keyframes changeWidth {    // 애니메이션 동작 세부내용을 정의함
	from { width: 300px; }  // animation-direction의 시작점
    to { width: 600px; }    // animation-direction의 종료점

 ** timing-function ** (아래 Transition에도 같이 적용됨.)
  1) ease : (기본값) 처음과 끝을 부드럽게
  2) ease-in : 처음을 느리게
  3) ease-out : 마지막을 느리게
  4) ease-in-out : 처음과 마지막을 느리게
  4) linear : 등속도 운동
  5) step-start : 시작하는 지점에 스텝을 끊음
  6) step-end : 끝나는 시점에 스텝을 끊음

 ** direction **
  1) alternate: from -> to -> from (왕복)
  2) normal: from -> to, from -> to (정방향)
  3) reverse: to -> from, to -> from (역방향) 

Transition

.transition {
	transition-property: width;   // 변경할 css 속성
    transition-duration: 2s;      // 변경되는 데 걸리는 시간
    transition-timing-function: linear;  // 변경효과 속도
    transition-delay: 1s;         // 변경 대기 시간
}
    (=> transition: width 2s linear 1s;)
    이와같이 한줄로 포현도 가능하고, 순서는 위 항목 순서를 따름.

Transform

.transition {
	transform: rotate(45deg);       // 회전 (음수: 역방향)
    transform: scale(2,3);          // 크기 조절
    transform: skew(10deg, 20deg);  // 각도 변경
    transform: translate(100px; 200px); // 위치 변경

prefix 접두사 (공통 적용)

위 함수들은 최신 브라우저에서만 적용되는 CSS임.
이를 하위브라우저에서도 적용하기 위한 기능임.

	-webkit-transform: ... // 크롬, 사파리
    -moz-transform: ...    // 파이어폭스
    -ms-transform: ...     // 익스플로러 9.0
    -o-transform: ...      // 오페라

	주의할 점은, keyframes에도 같이 달아줘야 함.
    @-webkit-keyframes ...
profile
코딩꿈나무 고마오

0개의 댓글