스크롤 이벤트를 직접 리스닝하지 않고 IntersectionObserver로 요소가 화면에 "보이기 시작"하는 순간만 감지합니다. 콜백에서 클래스를 하나 추가하면 CSS transition이 나머지를 처리합니다.
한 번 보인 요소는 observer.unobserve()로 그만 감시하는 게 일반적입니다 — 스크롤할 때마다 계속 깜빡이면 오히려 산만합니다. threshold(예: 0.5)로 "얼마나 보여야 트리거할지"를 조절합니다.
카드 미리보기는 스크롤이 안 되므로, 이 데모는 가상의 스크롤 컨테이너를 자동으로 위로 흘려보내며 각 행이 관찰 영역에 들어올 때 리빌 애니메이션을 켭니다.
언제 쓰나
콘텐츠가 있다는 걸 보여주는 용도로 쓰고, 정보 자체를 가리는 용도로는 쓰지 마세요 — 스크롤이 느린 사용자나 리더기에는 방해가 됩니다.