홈페이지에 스크롤하면 나타나는 애니메이션을 넣으려면 지금까지는 자바스크립트 코드를 따로 작성해야 했습니다. 그런데 CSS에 새로 추가되는 animation-trigger 속성을 쓰면, 스크롤 위치나 요소가 화면에 보이는 시점만으로 애니메이션을 재생·정지·역재생할 수 있어 코드 구조와 유지보수 방식이 크게 바뀝니다.
스크롤 애니메이션 구현 방식이 달라집니다
기존에는 'Intersection Observer API'라는 자바스크립트 기능으로 요소가 화면에 들어오고 나가는 시점을 감지해 애니메이션을 켜고 끄는 코드를 직접 짜야 했습니다. animation-trigger는 이 감지와 제어를 CSS 속성 하나로 처리하며, timeline-trigger로 트리거 이름과 작동 범위(스크롤 위치 또는 뷰포트 노출 여부)를 정의한 뒤 연결하는 방식입니다.
특히 트리거를 정의하는 요소와 실제로 애니메이션이 걸리는 요소를 분리할 수 있어, 부모 요소 하나에 스크롤 조건을 걸어두고 그 안의 여러 자식 요소가 함께 움직이게 만드는 구성도 가능해집니다.
우리 홈페이지 코드와 성능에 생기는 변화
디자인 측면에서는 스크롤에 맞춰 섹션이 순차적으로 나타나거나, 진입할 때와 빠져나갈 때 서로 다른 동작(진입 시 재생, 퇴출 시 역재생)을 주는 연출이 자바스크립트 없이 가능해집니다. 성능 측면에서는 자바스크립트가 계속 스크롤 이벤트를 감시하지 않아도 되므로, 페이지 로딩 속도와 반응성을 평가하는 '코어 웹 바이탈' 점수 관리에도 유리한 구조입니다.
| 구분 | 기존 방식 | animation-trigger |
|---|---|---|
| 구현 수단 | 자바스크립트 코드 작성 | CSS 속성만으로 처리 |
| 동작 제어 | 이벤트 리스너 직접 구현 | play-forwards 등 내장 액션 |
| 성능 부담 | 스크립트 실행 비용 발생 | 브라우저 네이티브 처리 |

지금 담당자가 챙겨야 할 일
- 현재 쓰는 애니메이션 목록 정리 스크롤 진입 효과, 페이드인, 카운트업 등 자바스크립트로 구현된 애니메이션을 먼저 목록화해 교체 우선순위를 정합니다.
- 브라우저 지원 현황 확인 animation-trigger는 아직 실험적 기능이므로, 운영 중인 사이트에 바로 적용하기 전에 주요 브라우저의 지원 여부를 확인합니다.
- 개발 담당자와 적용 범위 논의 전체 교체보다는 신규 페이지나 리뉴얼 구간부터 시범 적용하는 방식을 먼저 검토합니다.
- 폴백(대체) 코드 준비 지원하지 않는 브라우저 환경에서는 애니메이션이 아예 작동하지 않거나 정적으로 보이도록 기존 방식을 함께 남겨둡니다.
섣부른 전면 적용이 위험한 이유
- 실험적 기능을 운영 중인 메인 홈페이지에 바로 전면 적용하면, 지원하지 않는 브라우저 사용자에게 콘텐츠가 아예 보이지 않을 수 있습니다.
- 애니메이션이 많아질수록 화려해 보이지만, 과도한 움직임은 오히려 체류 시간과 전환율을 떨어뜨릴 수 있어 꼭 필요한 구간에만 적용하는 판단이 필요합니다.
- CSS만으로 구현 가능하다고 해서 기존 자바스크립트 코드를 성급하게 모두 제거하면, 지원이 안 되는 환경에서 애니메이션 효과 자체가 사라질 수 있습니다.
한 줄 정리 animation-trigger는 스크롤 애니메이션을 자바스크립트 없이 CSS만으로 구현하게 해주는 기술이지만, 아직 실험 단계이므로 브라우저 지원 확인과 단계적 적용이 우선입니다.

