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

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

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

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

「自分のサイトでも導入したいけど難しそう…」と思う方も多いかもしれません。

でも、IntersectionObserver(インターセクション・オブザーバー)を使えば、複雑な処理を書かなくてもスクロール連動アニメーションが作れます。

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

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

※無料部分では仕組みと簡単なサンプルを紹介します。

実際の導入コードやテンプレートは有料パートで解説しています。

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

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) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        // ここで .active を付与してアニメーションを発火
        // 実際の実装は有料パートで解説
      }
    });
  });

  targets.forEach(target => observer.observe(target));
});
  • IntersectionObserver() :「監視の仕組み
  • entry.isIntersecting「見えたかどうか」を判定
補足
  • このコードは仕組みの理解用です
  • 実際にサイトで動かすには、有料パートで解説する「表示タイミングの制御」が必要です
  • 一度きりの再生・繰り返し再生交差判定(オプション設定)などは有料記事内で詳しく解説しています
スポンサーリンク

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

スクロールアニメーションは表示の仕方によっていくつかの種類があります。ここでは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が付くとフェードイン */
}

無料部分では「アニメーションの仕組み」と「動きのイメージ」を確認しました。

もし自サイトですぐに動くスクロールアニメーションを導入したい場合は、有料パートで 5種類のアニメーションテンプレート+IntersectionObserverでのスクロール監視コードをセットで提供しています。

一度導入すれば、簡単に動きのあるサイトを作れます。

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

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

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

サイト名
Turicco

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

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

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

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

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

※決済はStripeを利用(SSL暗号化)。運営者はカード情報を保持しません。

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

販売価格
980円(税込)

About meこの記事を書いた人

はるみです
女性-1-gif

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

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

Shopping お買い物はこちら
\シェアはこちらから/
スポンサーリンク

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

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