찾다
웹 프론트엔드CSS 튜토리얼페이지 스크롤 중에 요소가 뷰포트에 들어갈 때 CSS 애니메이션을 트리거하는 방법은 무엇입니까?

How to Trigger CSS Animations When Elements Enter the Viewport During Page Scroll?

페이지 스크롤 중 뷰포트에 표시되는 요소 애니메이션

웹 페이지에서 CSS 애니메이션을 사용할 때 모든 애니메이션이 동시에 재생되어 애니메이션이 눈에 띄지 않는 상황에 직면하는 것이 일반적입니다. 바닥. 이 문제를 해결하기 위해 IntersectionObserver API를 사용하는 솔루션을 살펴보겠습니다.

IntersectionObserver API

IntersectionObserver API를 사용하면 개발자는 요소 교차점의 변경 사항을 모니터링할 수 있습니다. 상위 컨테이너 또는 뷰포트입니다. 요소가 표시되면 작업을 시작하는 데 사용할 수 있는 이벤트를 트리거합니다.

구현 예

다음은 다음과 같은 경우 CSS 클래스 토글을 트리거하는 예입니다. 요소가 뷰포트에 표시됩니다:

<br>const inViewport = (항목, 관찰자) => {<br> items.forEach(entry => {<pre class="brush:php;toolbar:false">entry.target.classList.toggle("is-inViewport", entry.isIntersecting);

});
};

const Obs = new IntersectionObserver(inViewport);
const obsOptions = {}; //참조: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Intersection_observer_options

// 모든 [data-inviewport] 요소에 관찰자를 연결합니다:
문서 .querySelectorAll('[data-inviewport]').forEach(el => {
Obs.observe(el, obsOptions);
});

위의 예에서는 [data-inviewport] 속성이 있는 모든 요소가 모니터링됩니다. 요소가 뷰에 있으면 is-inViewport 클래스가 추가되고 아래 CSS에 정의된 애니메이션이 실행됩니다.

<br>[data-inviewport="scale-in"] { <br> 전환: 2초;<br> 변환: scale(0.1);<br>}<br>[data-inviewport="scale-in"].is-inViewport { <br> 변환: scale(1);<br>}<p>[data -inviewport="fade-rotate"] { <br> 전환: 2초;<br> 불투명도: 0;<br>}<br>[data-inviewport="fade-rotate"].is-inViewport { <br> 변환: 회전(180deg);<br> 불투명도: 1;<br>}<br>&lt ;/pre></p><p>이 솔루션은 스크롤하는 동안 요소가 표시될 때만 애니메이션이 재생되도록 보장하여 사용자 경험을 향상하고 시각적으로 더욱 매력적인 웹페이지를 만듭니다.</p>

위 내용은 페이지 스크롤 중에 요소가 뷰포트에 들어갈 때 CSS 애니메이션을 트리거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Google 글꼴을 태그하고 Goofonts.com을 작성한 방법Google 글꼴을 태그하고 Goofonts.com을 작성한 방법Apr 12, 2025 pm 12:02 PM

Goofonts는 개발자 부인과 디자이너 남편이 서명 한 사이드 프로젝트로, 둘 다 타이포그래피의 큰 팬입니다. 우리는 Google에 태그를 지정했습니다

시대를 초월한 웹 개발 기사시대를 초월한 웹 개발 기사Apr 12, 2025 am 11:44 AM

Pavithra Kodmad

섹션 요소와의 거래섹션 요소와의 거래Apr 12, 2025 am 11:39 AM

두 기사가 정확히 같은 날에 출판되었습니다.

JavaScript API 상태로 GraphQL 쿼리를 연습하십시오JavaScript API 상태로 GraphQL 쿼리를 연습하십시오Apr 12, 2025 am 11:33 AM

GraphQL API를 구축하는 방법을 배우는 것은 매우 어려울 수 있습니다. 그러나 10 분 안에 GraphQL API를 사용하는 방법을 배울 수 있습니다! 그리고 그것은 완벽하게 얻었습니다

구성 요소 수준 CMS구성 요소 수준 CMSApr 12, 2025 am 11:09 AM

구성 요소가 데이터를 쿼리하는 환경에 거주하면 근처에 사는 경우 시각적 구성 요소와

오프셋 경로로 원에 유형을 설정하십시오오프셋 경로로 원에 유형을 설정하십시오Apr 12, 2025 am 11:00 AM

여기 Yuanchuan의 합법적 인 CSS 속임수입니다. 이 CSS 속성 오프셋 경로가 있습니다. 옛날 옛적에, 그것은 모션 경로라고 불렸다가 이름이 바뀌 었습니다. 나

CSS에서 '리버 트'는 무엇을합니까?CSS에서 '리버 트'는 무엇을합니까?Apr 12, 2025 am 10:59 AM

Miriam Suzanne 은이 주제에 대한 Mozilla 개발자 비디오에서 설명합니다.

현대 애호가현대 애호가Apr 12, 2025 am 10:58 AM

나는 이런 것들을 좋아한다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.