반응형
안녕하세요 😊
웹 개발에서 요소에 움직임을 줄 때 가장 많이 쓰는 기능이 바로 **트랜지션(transition)**과 **애니메이션(animation)**입니다.
두 기능 모두 CSS만으로 멋진 효과를 낼 수 있지만, 헷갈리기 쉽습니다.
오늘은 트랜지션과 애니메이션의 차이를 초보자도 쉽게 이해할 수 있도록 정리하고,
실무에서 어떻게 활용하면 좋은지 예제와 함께 소개하겠습니다.
📍 1. CSS 트랜지션(transition)
- 상태 변화가 있을 때만 실행
- 마우스를 올리거나, 클래스를 추가·제거할 때 동작
- 짧고 단순한 효과에 적합
예시: 버튼에 hover 시 색상 변경
button {
background-color: #2196f3;
color: #fff;
padding: 10px 20px;
border: none;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #0d47a1;
}
👉 마우스를 올릴 때 배경색이 부드럽게 바뀝니다.
특징: 이벤트(hover, focus, active 등) 없이는 실행되지 않음.
📍 2. CSS 애니메이션(animation)
- **키프레임(keyframes)**을 사용해 지속적인 동작을 만들 수 있음
- 자동 실행 가능 (animation 속성)
- 무한 반복, 특정 타이밍 제어 가능
예시: 로딩 스피너 만들기
.loader {
width: 40px;
height: 40px;
border: 4px solid #ddd;
border-top-color: #2196f3;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
100% { transform: rotate(360deg); }
}
👉 페이지가 열리자마자 자동으로 회전하는 로딩 애니메이션이 실행됩니다.
특징: 이벤트 없이도 시작 가능, 반복적 움직임 구현 가능.
📍 3. transition vs animation 차이 비교
구분 | transition | animation |
실행 조건 | 이벤트나 상태 변화가 있어야 시작 | 자동 실행 가능 |
코드 방식 | 시작·끝 상태만 정의 | 중간 단계까지 세밀히 정의 가능 |
활용 예시 | 버튼 hover 효과, 메뉴 열림/닫힘 | 로딩 스피너, 배너 자동 슬라이드 |
반복 여부 | 기본 1회 실행 | infinite 반복 가능 |
👉 쉽게 말해,
- transition → 상태 변화 시 한 번 실행
- animation → 스스로 움직이고 반복 가능
📍 4. 실무 활용 팁
- 단순 효과 = transition
- 버튼 hover, 드롭다운 메뉴 등장, 색상/크기 변경
- 지속적/자동 효과 = animation
- 로딩 스피너, 배너 슬라이드, 반짝이는 텍스트
- 둘을 함께 사용 가능
- 애니메이션으로 배경 요소를 꾸미고,
- 트랜지션으로 사용자 인터랙션에 부드러운 효과 주기
✅ 마무리
CSS만으로도 충분히 멋진 움직임을 구현할 수 있습니다.
- transition은 상태 변화에 반응하는 “짧은 효과”
- animation은 스스로 동작하는 “지속적인 효과”
두 가지를 구분해서 사용하면 웹사이트에 생동감을 더하면서도
사용자 경험(UX)을 해치지 않는 깔끔한 인터랙션을 만들 수 있습니다.
반응형
'HTML, CSS' 카테고리의 다른 글
Flexbox vs Grid 완전 정복! 언제 어떤 레이아웃을 써야 할까? (0) | 2025.10.04 |
---|---|
<label> 태그의 역할과 올바른 사용법 (0) | 2025.10.03 |
<address> 태그 – 연락처와 저작권 정보 표현하기 (0) | 2025.09.19 |
스크립트 없이 CSS만으로 반짝이는 글자 애니메이션 만들기 (0) | 2025.09.18 |
<figure>와 <figcaption> – 이미지와 설명을 의미 있게 묶는 방법 (0) | 2025.09.16 |