ホームページ >ウェブフロントエンド >CSSチュートリアル >[翻訳] Apple Web サイトのアニメーションの分析 (スクロール同期)
元の記事リンク
Apple の公式 Web サイトでは、コンテンツを強調表示するためにスムーズなスクロールベースのアニメーションが使用されています。この投稿では、同様のアニメーションを分析および複製して、その実装を理解します。
HTML 構造は、テキストと背景ビデオを含む単純なレイアウトで構成されます。
スクロール位置に基づいてスムーズなアニメーションを有効にするように CSS を設定します。
/* Text Section */ .text-section { position: absolute; top: 20%; width: 100%; text-align: center; color: white; z-index: 2; } .video-section { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; display: flex; justify-content: center; align-items: center; overflow: hidden; } .background-video { width: 100vw; height: auto; }
スクロール位置に基づいてテキストとビデオの状態を計算し、リアルタイムでスタイルを更新します。
const textSection = document.querySelector(".text-section"); const videoSection = document.querySelector(".video-section"); function handleScroll() { const scrollY = window.scrollY; const windowHeight = window.innerHeight; const textOpacity = Math.max(0, 1 - scrollY / (windowHeight / 2)); const textTranslateY = Math.min(scrollY / 2, 100); textSection.style.transform = `translateY(-${textTranslateY}px)`; textSection.style.opacity = textOpacity; const videoScale = Math.max(0.5, 1 - scrollY / (windowHeight * 2)); videoSection.style.transform = `scale(${videoScale})`; } window.addEventListener("scroll", () => { requestAnimationFrame(handleScroll); });
textOpacity: スクロール位置に基づいて徐々にフェードアウトするようにテキストの不透明度を調整します。
textTranslateY: スクロールの進行に比例してテキストが上にどれだけ移動するかを計算します。
videoScale: スクロール位置に比例して縮小するようにビデオのスケーリングを調整します。
下にスクロール: テキストが上に移動してフェードアウトし、ビデオが縮小します。
上にスクロール: テキストが下に移動して再表示され、ビデオが拡大されます。
以上が[翻訳] Apple Web サイトのアニメーションの分析 (スクロール同期)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。