HTML, CSS

자연스러운 웹 인터랙션! - transition vs animation 완전 정복하기

jonbeo 2025. 6. 26. 10:18
반응형

 

 

웹사이트에서 버튼을 눌렀을 때 부드럽게 색이 바뀌거나, 배너가 좌우로 움직이는 걸 본 적 있죠?
이런 자연스러운 움직임을 만드는 데 쓰이는 두 가지 핵심 속성이 바로 transitionanimation입니다.

이번 포스팅에서는 이 둘의 차이점과 각각 어떻게 사용하는지 예시와 함께 차근차근 살펴볼게요!


 

transition이란?

transition은 "변화가 일어날 때 부드럽게 전환되도록" 만들어주는 속성이에요.
어떤 스타일 속성이 바뀔 때, 그 변화가 천천히, 자연스럽게 일어나게 하는 거죠.

.box {
  width: 100px;
  height: 100px;
  background-color: tomato;
  transition: all 0.3s ease;
}

.box:hover {
  background-color: dodgerblue;
  width: 200px;
}
  • all: 모든 속성에 적용
  • 0.3s: 지속 시간
  • ease: 전환 속도의 곡선

🎯 핵심 포인트

  • *이벤트(trigger)*가 있어야 작동 (ex. hover, click 등)
  • 변화되는 속성이 명확해야 함
  • 한 번만 전환됨

 

animation이란?

animation은 이름처럼 애니메이션처럼 동작하게 만들 수 있어요.
단순한 변화가 아닌 프레임 단위의 움직임을 제어하죠.

@keyframes slide {
  0% { transform: translateX(0); }
  100% { transform: translateX(100px); }
}

.box {
  width: 100px;
  height: 100px;
  background-color: salmon;
  animation: slide 1s infinite alternate;
}
  • @keyframes: 애니메이션의 흐름 정의
  • animation: 이름, 지속시간, 반복 등 지정 가능

🎯 핵심 포인트

  • 이벤트 없이도 자동 실행 가능
  • 반복 여부, 방향 등을 설정 가능
  • 여러 단계의 변화를 표현할 수 있음

 

🧪 실습 비교: transition vs animation

항목 transition animation
작동 조건 이벤트 필요 (ex. hover) 자동 재생 가능
단계 표현 시작 → 끝 여러 단계(keyframes)
반복 설정 불가 가능 (infinite)
속도 제어 ease, linear animation-timing-function

 


 

🚧 자주 하는 실수들

  • transition은 상태 변화가 없으면 작동하지 않음
  • animation@keyframes 없으면 아무 일도 안 일어남
  • hover 상태에서 animation 설정하면, 마우스를 떼면 멈춤

 

✅ 언제 어떤 걸 써야 할까?

  • 버튼 hover 시 색상 변화transition
  • 로딩 중 원이 빙글 도는 애니메이션animation
  • 스크롤에 따라 동작 → JS와 animation 조합

 

📌 정리 포인트

상황 추천 속성
마우스 올렸을 때 변화 transition
자동 반복 동작 animation
복잡한 시퀀스 animation + keyframes
간단한 스타일 변화 transition

 

반응형