サイト型トップページの作り方を公開しています!Check

スクロールアニメーションの作り方|CSSとIntersectionObserver(交差監視)でふわっと表示

アイキャッチ|スクロールアニメーション テーマ共通
テーマ共通
記事内に広告が含まれています

Webサイトでよく見かける、スクロールに合わせてふわっと要素が表示されるフェードインやスライドアニメーション。

「自分のサイトでも導入したいけど難しそう…」といったイメージがあるかもしれません。

実は、IntersectionObserver(インターセクション・オブザーバー)というJavaScriptの仕組みを使えば、それほど難しい処理を書かずにスクロール連動アニメーションを実装できます。

この記事では、スクロールアニメーションの仕組み・サンプルコード・具体的な実装方法まで丁寧に解説します。

このような方におすすめ
  • 初心者〜中級のWeb制作学習者
    クラスの付け方等、HTMLとCSSの基礎を理解されている方
    → 自作したアニメーションも追加できます
  • フェードインやスライドなどのスクロールアニメーションを自サイトに導入したい方
  • JavaScriptは苦手だけど、動きのあるサイトを作りたい方

この記事の一部(そのままコピペで使える完成版のHTML/CSS/JSコピペテンプレート等)は有料公開です。すぐに導入したい方は以下の実装方法をご覧ください。

\実際の動きをチェック/
\すぐに実装/
スポンサーリンク

About meこの記事を書いた人

はるみです
女性-1-gif

ブログ好きな40代主婦です。
2020年1月1日にWordPressを始め、
Cocoonをスキンなしでカスタマイズ。

  • ドメインパワー : 40
  • 2023年より有料記事公開
    累計510件(月間約20件)のご購入実績
    (2025年10月現在)
  • カスタマイズを丁寧にサポート

IntersectionObserverでスクロールアニメーションを作る仕組み

スクロールアニメーション|intersection-observer

IntersectionObserverとは?

IntersectionObserver(インターセクション・オブザーバー)は、ページ内の要素が画面内に入ったかどうかを監視できるJavaScriptの機能です。

例えば、下にスクロールして画像やテキストが見えるタイミングでふわっと表示させることができます。

特徴

  • 要素が画面内に入ったかどうかを自動で監視できる
  • 従来のscrollイベントより軽量で高速
  • スクロール時のアニメーションや遅延読み込みに最適
見出し

従来の方法ではスクロールイベントごとに処理を実行するため重くなりがちでした。IntersectionObserverなら必要なタイミングだけ反応するため、パフォーマンスに優れています。

実際に使ってみると、スクロールイベントで悩んでいた画面のカクつきが改善されました。

スクロール監視のイメージ

ユーザーがスクロールすると、画面に要素が見えるタイミングでアニメーションが発火します。

[画面上部]
───────────────
↓ スクロール
───────────────
[要素が画面内に入る]
JavaScriptが検知
.activeクラスが追加
CSSアニメーション発火
───────────────

この流れを理解すると、スクロールに合わせた自然なアニメーションがイメージしやすくなります。

サンプルコード(簡単な例)

HTML(イメージ)

<div class="fade-in">フェードインする要素</div>

CSS(フェードの例)

.fade-in {
  opacity: 0; /* 初期は非表示 */
  transition: opacity 1s ease-in-out;
}
.fade-in.active {
  opacity: 1; /* activeが付くとフェードイン */
}

仕組みのコード例(擬似版)

// ページ読み込み後に実行
document.addEventListener("DOMContentLoaded", () => {
  const targets = document.querySelectorAll(".fade-in");

  // 要素が表示領域に入ったらクラスを付与する仕組み
  const observer = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        // ここで .active を付与してアニメーションを発火させる
        // ※ 実際の処理は有料パートで解説します
      }
    });
  });

  // 各要素を監視
  targets.forEach(target => observer.observe(target));
});

上のコードは、ページ読み込みが完了したあとに.fade-in クラスを持つ要素をすべて取得し、スクロールで画面内に入ったタイミングを監視しています。

  • IntersectionObserver() :「監視の仕組み
  • entry.isIntersecting「見えたかどうか」を判定
注意点・補足
  • 上記のサンプルコードは仕組みを理解するための簡易版です
  • 実際のアニメーションは .active クラスを付与したCSSで制御します
  • さらに、一度きりの再生・繰り返し再生交差判定(オプション設定)などは有料記事内で詳しく解説しています
スポンサーリンク

スクロールアニメーションの実例サンプル

スクロールアニメーションは表示の仕方によっていくつかの種類があります。ここではWebサイトでよく使われる代表的なアニメーションを5パターン紹介します。

  • サンプル用にボタンクリックで再生
  • 実際のページではスクロールに合わせてアニメーション発火

ここで使っているアニメーションの仕組みと記述方法はこちらの記事で解説しています。

フェードイン(ふわっと表示)

  • 特徴:要素が徐々に表示されるシンプルなアニメーション
  • 用途:テキストや画像の登場に自然さを加えたいとき

See the Pen スクロールアニメーション|フェードイン(fade-in) by Turicco (@Turicco) on CodePen.

下からフェードイン

  • 特徴:下から上にスライドしながらふわっと表示される
  • 用途:段落やリスト項目など順序を意識して見せたいとき

See the Pen スクロールアニメーション|下からフェードイン(fade-up) by Turicco (@Turicco) on CodePen.

右からスライドイン

  • 特徴:画面右側から横にスライドして表示
  • 用途:画像やカード型コンテンツに動きをつけたいとき

See the Pen スクロールアニメーション|右からスライドイン(slide-right) by Turicco (@Turicco) on CodePen.

左からスライドイン

  • 特徴:右からスライドインの逆、左側から表示
  • 用途:左寄せレイアウトのコンテンツを自然に出現させたいとき

See the Pen スクロールアニメーション|左からスライドイン(slide-left) by Turicco (@Turicco) on CodePen.

拡大して表示(ズームイン)

  • 特徴:小さい状態から徐々に拡大しながら表示
  • 用途:見出しやアイキャッチ画像など目立たせたい要素に効果的

See the Pen スクロールアニメーション|拡大して表示(scale-up) by Turicco (@Turicco) on CodePen.

\実際の動きをチェック/
スポンサーリンク

スクロールアニメーションの具体的な実装方法|IntersectionObserver

HTMLにアニメーション用クラスを付ける

アニメーションさせたい要素に対応するクラスを付けます

これで 「どんな動きをさせたいか」 を指定します。

<div class="scroll-fade-in">フェードイン</div>
<div class="scroll-fade-up">下からフェードイン</div>
<div class="scroll-slide-right">右からスライドイン</div>
<div class="scroll-slide-left">左からスライドイン</div>
<div class="scroll-scale-up">拡大して表示</div>

上記のようにクラス名を変えるだけで、動きの種類を切り替えられます。
(例)scroll-fade-up → 下からふわっと出現、scroll-slide-left → 左からスライドイン

WordPressブロックエディタで設定する場合

HTMLを直接書かなくてもOK。
ブロックごとに 追加CSSクラス を設定すれば簡単に使えます。

  1. 編集画面でアニメーションさせたいブロックを選択
  2. 右側の「ブロック」設定パネルを開く
  3. 高度な設定」→「追加CSSクラス」に、アニメーション用クラスを入力
    例:scroll-fade-up
  4. 更新(またはプレビュー)すると、スクロール時にふわっと動きます

ブロックエディタで特定のブロックにだけデザインを当てる方法を紹介しています。

CSSでアニメーションを定義

  • active クラスが付くとアニメーションが発動します。
  • 好みでスピードや移動距離も調整可能です。
  • transition プロパティを使って、滑らかな変化を表現しています。

例:

.fade-in {
  opacity: 0; /* 初期は非表示 */
  transition: opacity 1s ease-in-out;
}
.fade-in.active {
  opacity: 1; /* activeが付くとフェードイン */
}

ここから先は 有料コンテンツ になります。

無料部分で紹介したアニメーションは「イメージ用」でしたが、実際にサイトへ導入するには スクロールを監視して、表示タイミングでクラスを付与する仕組みが必要です。

有料コンテンツで提供する内容
  • 実用CSSテンプレート
    1. フェードイン
    2. 下からフェードイン
    3. 右からスライドイン
    4. 左からスライドイン
    5. 拡大して表示
  • IntersectionObserverを使ったスクロール監視のJavaScriptコード(解説あり)
    • 交差判定(options)→ 使い勝手◎
    • 一度だけ再生/繰り返し再生の切り替え方法

5種類のテンプレート+スクロール制御一式 → 980円
アニメーション1つあたり200円以下で手に入るお得なセットです。

ポイント
  • CSSでアニメーションを作り、JSはスクロール監視だけなので初心者でも理解しやすい
  • コピペするだけで、5種類のアニメーションを自サイトに導入可能
  • アニメーションのスピードや表示タイミング等はお好みで調整自由
特定商取引法に基づく表記

サイト名
Turicco

サイトURL
https://turicco.com/

運営者情報
運営責任者:はるみ
お問い合わせ先:https://turicco.com/contact/

購入方法
コンテンツ販売サービス「codoc(コードク)」を利用しています。
詳しくは codoc購入者向けFAQ をご覧ください。

納品方法
購入完了後、対象の記事が閲覧可能になります。

お支払い方法
・クレジットカード
・デビットカード
・プリペイド型クレジットカード
・Apple Pay
・Google Pay
・コンビニ決済

※クレジットカード情報はSSLで暗号化され、決済サービス「Stripe」に直接送信されます。管理人がカード情報を取得・保管することはありません。

返金・キャンセルについて
codoc株式会社の利用規約第10条(返金)に基づき、原則としてご購入後のキャンセル・返金はできません。あらかじめご了承ください。

販売価格
980円(税込)

Comment 記事の感想を書き込んでいただけると幸いです

タイトルとURLをコピーしました