본문 바로가기
javascript

CSS 키프레임 애니메이션 구현하기

by hera1 2024. 1. 20.

안녕하세요 오늘은 CSS 키프레임 애니메이션 구현하는 방법에 대해서 소개하려고 합니다. CSS 키프레임 애니메이션은 웹 디자인에서 동적이고 매력적인 효과를 부여하는 데 사용되는 강력한 기술 중 하나입니다. 이번에는 개념과 활용에 대해 자세히 알아보고, 간단한 예시 코드를 통해 실제 구현 방법을 확인해보겠습니다.

CSS 키프레임 애니메이션의 개념

키프레임 애니메이션이란 무엇일까요?

CSS 키프레임 애니메이션은 애니메이션의 시작과 끝을 지정하여 중간 단계를 브라우저에게 알려주는 방식으로 동작합니다. 이는 여러 단계의 중간 상태를 정의하여 부드러운 애니메이션을 만들 수 있게 해줍니다.

키프레임 애니메이션의 구성 요소

  • @keyframes: 키프레임을 정의하는 규칙입니다. 애니메이션의 중간 단계를 명시합니다.
  • animation-name: 사용할 키프레임의 이름을 지정합니다.
  • animation-duration: 애니메이션의 한 주기의 지속 시간을 설정합니다.
  • animation-timing-function: 애니메이션의 타이밍 함수를 설정합니다. (ease, linear, ease-in, ease-out 등)
  • animation-delay: 애니메이션의 시작을 지연시킵니다.
  • animation-iteration-count: 애니메이션의 반복 횟수를 설정합니다.

키프레임 애니메이션의 구현

요소 확대/축소 효과 구현하기

css keyframe 예제코드

/* 키프레임 정의 */
@keyframes zoomInOut {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}

/* 애니메이션이 적용될 요소 */
.square {
    width: 100px;
    height: 100px;
    background-color: #3498db;
    animation-name: zoomInOut; /* 사용할 키프레임 이름 지정 */
    animation-duration: 3s; /* 애니메이션 지속 시간 */
    animation-timing-function: ease; /* 타이밍 함수: ease로 부드럽게 */
    animation-delay: 1s; /* 1초 후에 애니메이션 시작 */
    animation-iteration-count: infinite; /* 무한 반복 */
}

위 코드에서 @keyframes 규칙을 사용하여 zoomInOut이라는 키프레임을 정의하였습니다. 이 키프레임은 0%, 50%, 100% 세 가지 상태를 정의하여 요소를 확대/축소하는 효과를 만듭니다. 해당 키프레임은 .square 클래스에 적용되어 있습니다.

css keyframe 예시
css keyframe 예시

위와 같이 확대하고 축소하는 정사각형을 구현해봤습니다.

회전하는 원 만들기

@keyframes rotate {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.circle {
    width: 100px;
    height: 100px;
    background-color: #e74c3c;
    border-radius: 50%; /* 원 모양 */
    animation: rotate 4s linear infinite; /* rotate 키프레임 적용 */
}

위의 예제에서는 rotate 키프레임을 사용하여 요소를 360도 회전시키는 효과를 만들었습니다. animation 속성을 사용하여 간결하게 애니메이션을 적용하였습니다.

키프레임 애니메이션의 활용

1. 사용자 경험 향상

키프레임 애니메이션은 사용자 경험을 향상시키는 데 강력한 도구입니다. 부드럽고 동적인 움직임은 사용자에게 더 흥미로운 경험을 제공합니다.

2. 시각적 효과

로딩 중이나 특정 동작 발생 시에 시각적인 효과로 사용할 수 있습니다. 사용자의 주의를 끄는 데 도움이 됩니다.

3. 반응형 디자인

키프레임 애니메이션을 활용하여 화면 크기에 따라 유연하게 변하는 반응형 디자인을 구현할 수 있습니다.

 

제 생각에 CSS 키프레임 애니메이션은 웹 디자인을 더 동적이고 매력적으로 만들어주는 강력한 기술인 것 같습니다. 간단한 예시 코드를 통해 키프레임 애니메이션의 구현 방법과 활용 예시를 확인하였습니다. 여러분들도 애니메이션을 효과적으로 활용하면 웹페이지에 생명을 불어넣어 사용자에게 더 흥미로운 경험을 제공할 수 있습니다. 다른글이 궁금하다면 여기도 읽어봐주세요. 감사합니다!

 

키프레임 더 자세히 공부하기