애니메이션 속성

imjingu·2023년 7월 10일
0

개발공부

목록 보기
83/481

애니메이션 속성 @keyframes

<@keyframes> 속성 : 애니메이션이 변경되는 지점을 설정
'키프레임' 애니메이션의 시작 지점을 설정할 때 해당 지점.
CSS 에서는 애니메이션이 변경되는 모든 지점을 설정. 키프레임 안에서 시간에 의해 변화되는 부분은 선택자로 입력.
선택자는 0%를 시작 위치로 표현하며, 100%를 끝나는 위치로 표.
키워드 사용시에는 from이 시작 키프레임, to가 마지막 키프레임 중간에 시간의 흐름을 한 번 더 지정하고자 한다면 50%라고 선택자를 지정하여 변화된 스타일 값을 넣어주면 됨.

<animation-name> 속성 : 애니메이션 이름 지정.
@keyframes 애니메이션의 이름을 지정.
움직이는 요소에 대한 스타일 지정 시 animation-name을 통해 이름을 지정하고 움직이는 요소의 @keyframes 속성에도 동일한 이름 지정.

<animation-delay> 속성 : 지연되는 값
애니메이션이 지연되는 속도를 초로 지정.

<animation-duratin> 속성 : 애니메이션 실행 시간 설정
초수를 값으로 지정.
기본 값은 0으로 애니메이션이 실행되지 않음.

<animation-timing-function> 속성 : 애니메이션의 이징 효과
애니메이션 속도에 속도감을 줄 때 사용.
linear, ease, ease-in, ease-out, ease-in-out

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        
        * {
            margin: 0; padding: 0;
        }
        #wrap {
            position: absolute; width: 200px; height: 200px; border-radius: 100px; text-align: center;
            /* 그레이디언트 배경 - colorzilla.com */
            background: linear-gradient(to bottom, rgba(135, 224, 253, 1) 0%, rgba(83, 203, 241, 1) 40%, rgba(5, 171, 224, 1) 100%);
            /* 애니매이션의 동작을 지정 */
            animation-name: rint; /* 애니메이션 이름 지정 - rint */
            animation-duration: 2s; /* 애니매이션을 몇 초 동안 재생할지 지정 */
            animation-timing-function: linear; /* 수처 변형 함수를 지정, 애니매이션 속도의 변화 */
            
            /* animation-iteration-count
            애니메이션의 반복 횟수를 설정하며 3회 반복할 경우 3을 값으로 설정
            무한 반복을 원할경우 infinite라고 값을 설정
            animation-iteration-count: 3; - 3회반복 */
            animation-iteration-count: infinite; /* 무한반복 */

            
            animation-direction: 애니메이션이 시작되는 방향 설정. normal이 기본값
            normal : 매 사이클마다 정방향으로 재생
            즉, 순환 할 때마다 애니메이션이 시작 상태로 재설정되고 다시 시작. 계속 from에서 to로 이동. 기본값.
            
            reverse : 사이클마다 역방향으로 재생 즉 순환 할때마다 애니메이션이 종료 상태로 재설정되고 다시 시작.
            애니메이션 단계가 거꾸로 수행, 역방향으로 움직임.
            
            alternate : from에서 to로 이동 후 to에서 from으로 이동을 반복. 매 사이클마다 각 주기와 방향을 뒤집으며,
            첫번재 반복은 정방향으로ㅓ 진행
            
            alternate-reverse : 매 사이클마다 각 주기의 방향을 뒤집으며, 첫번재 반복은 역방향으로 진행
            역방향으로 움직인 후 정방향으로 움직임
            
            
            animation-direction: alternate;
        }

        
        animation-play-state
        애니메이션의 재생 및 중지 반응 선택자와 함께 사용하여 제어
        예 #wrap:hover { animation-play-state : paused; } 애니메이션 중지
        
        #wrap:hover {
            animation-play-state: paused; /* 마우스를 올렸을 때 애니매이션 중지 */
        }


        #wrap > h1 {
            line-height: 200px;
        }

        /* 애니메이션의 각 키프레임의 변화되는 부분 */
        @keyframes rint { /* 애니메이션 rint의 키프레임과 변화되는 움직임 */
            from { /* 애니메이션이 10초라고 가정하면 0초 시점 */
                left: 0px; /* 왼쪽좌표 */
                transform: rotate(0deg); /* 변형속성 : 각도 0도에서 시작 */
            }
            50% { /* 애니메어션이 10초라고 가정하면 5초시점 */
                left: 1500px; /* 왼쪽좌표 */
            }
            to { /* 애니메이션이 10초라고 가정하면 10토시점 */
                left: 500px; /* 왼쪽좌표 */
                transform: rotate(360deg); /* 변형속성 : 각도 360도에서 끝 */
            }
        }
    </style>
</head>
<body>
    <div id="wrap">
        <h1>animation</h1>
    </div>
</body>
</html>

0개의 댓글