サイト型トップページの作り方を公開しています!Check
Webカスタマイズ

WordPressでスクロールでふわっと表示する方法|CSS+IntersectionObserver実装(プラグインなし)

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

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

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

でも、CSSIntersectionObserver(インターセクション・オブザーバー)を使えば、複雑なプログラムを書かなくてもスクロール連動アニメーションを実装できます。プラグインも必要ありません。

この記事では、

  • スクロールアニメーションの仕組み
  • 基本的なサンプルコード
  • 実装までの流れ

を、できるだけシンプルに解説します。

HTMLとCSSの基礎(クラスの付け方)が分かれば、コピペで再現できる内容です。

こんな方におすすめですめ
  • 初心者〜中級のWeb制作学習者
  • サイトに自然なアニメーションを追加したい
  • JavaScriptは苦手だけど、動きのあるサイトを作りたい

まずは無料パートで「仕組み」を理解してみてください。実際に使えるテンプレートは、有料パートでまとめています。

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

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

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

IntersectionObserverとは?

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

これを使うと、要素が表示されたタイミングでクラスを付与し、CSSアニメーションを発火させる処理をシンプルに実装できます。

基本の流れは次の3つだけです。

  1. 要素が画面に入ったかを監視する
  2. 入ったら .active クラスを追加する
  3. CSSアニメーションを開始する

この一連の処理をJavaScriptで自動化しています。

IntersectionObserverを使うメリット

  • 画面に見えたタイミングで自然にアニメーション発火できる
  • scrollイベントより軽量で高速
  • アニメーションや遅延読み込み(lazy load)との相性も良い

従来のscrollイベントはスクロールするたびに処理が実行されるため、要素が多いページでは処理が増えカクつきの原因になることもあります。

一方、IntersectionObserverは要素が画面と交差した瞬間だけ通知される仕組みです。必要なタイミングだけ処理が走るため、パフォーマンス面でも優れています。

なお、最近ではCSSの新機能である Scroll-Timeline を使ったスクロール連動アニメーションも登場しています。ただし、ブラウザ対応状況を考えると、現時点では IntersectionObserver を使った方法が最も安定して導入しやすいと思います。

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

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

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) {
        // 実装ではここに処理を記述します
        
      }
    });
  });

  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テンプレート(5種類)
    1. フェードイン
    2. 下からフェードイン
    3. 右からスライドイン
    4. 左からスライドイン
    5. 拡大して表示
  • IntersectionObserverのスクロール監視コード(解説あり)
    • 交差判定(options)
    • 一度だけ再生・繰り返し再生の切り替え方法

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

ポイント
  • CSSでアニメーションを作り、JSはスクロール監視だけなので初心者でも理解しやすい
  • コピペ+クラス追加でそのまま動く
  • 表示タイミングやスピードも自由に調整可能(掲載コードそのままでも使えます)

以下は有料コンテンツのご案内および特定商取引法に基づく表記です。

特定商取引法に基づく表記

サイト名
Turicco

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

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

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

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

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

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

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

販売価格
980円(税込)

\シェアはこちらから/
スポンサーリンク
背景画像|PC

About meこの記事を書いた人

はるみです
女性-1-gif

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

  • ドメインパワー : 40
  • 2023年より有料記事公開
    累計550件のご購入実績
  • カスタマイズを丁寧にサポート

Shopping お買い物はこちら

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

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