コーディング Web制作 jQuery アニメーション

【jQueryプラグイン】inview.jsでスクロールして表示領域に入ったらフェードインさせる方法

【jQueryプラグイン】inview.jsでスクロールして表示領域に入ったらフェードインさせる方法
スクロールして表示領域に入ったら要素をフェードインさせる事出来ない?
jQueryのプラグインを使えば簡単に出来るよ!

以前「スクロールに応じてアニメーションが発生するwow.jsの使い方」で同じような物をご紹介しましたが、実務でよく使うのは圧倒的に今回のinview.jsの方になります。

正確に言えばフェードインだけではなく、スクロールして表示領域に入ったらclassを付与して色んなイベントを発生させることが出来ます。

効率よくコーディングしたい人はこちら

スクロールして表示領域に入ったらフェードイン出来るinview.jsの使い方

inview.jsの使い方は以下になります。

  1. inview.jsをダウンロードしてファイルを読み込む
  2. HTMLにclassを書く
  3. CSSでフェードイン前後のコードを書く
  4. jQueryで表示領域に入ったらclassを付与させる

それでは順番に見ていきますが、まずはjQueryを使用するのでjQuery本体を読み込みましょう。

jQueryを使ったことがない人はこちらの記事を参照下さい。

【初めて使う人向け】jQuery本体を読み込む方法

 

inview.jsをダウンロード

まずは今回使用するinview.jsを以下のページからダウンロードします。

inview.js

 

ダウンロードしたファイルを解凍したらjquery.inview.min.jsを取り出します。

 

 

使うファイルはこれだけでOKです。

注意ポイント

CDNを使う場合はjQuery1系を使わないと動かないようなので、今回はファイルを使う方法でいきます(codepenではCDNです)

そしてファイルを読み込むコードを書きます(HTMLと同じ階層にjsフォルダがあり、その中にjquery.inview.min.jsがある場合)

<script src="js/jquery.inview.min.js"></script>

またjQueryのプラグインなので、jQuery本体を読み込むのも忘れないようにして下さい。

jQuery使うの初めてだよ~って人は以下の記事を参照下さい。

【初めて使う人向け】jQuery本体を読み込む方法

まずは下から上にフェードインさせたい場合を例に解説していきます。

 

HTMLにclassを書く

まずHTML側でフェードインさせたい要素に分かりやすいclass名を付けます。

今回はjs-fadeUpとします。

<div class="container">
  <div class="box js-fadeUp">
    <img src="画像のパス" alt=""/>
  </div>
  <div class="box js-fadeUp">
    <img src="画像のパス" alt=""/>
  </div>
  <div class="box js-fadeUp">
    <img src="画像のパス" alt=""/>
  </div>
</div>

このjs-fadeUpというclassが付いている要素が表示領域に入った時、jQueryでフェードイン用のclass名を付けます。

 

CSSでフェードイン前後のコードを書く

CSSはフェードイン前後のコードを書きます。

/* フェードイン(初期値) */
.js-fadeUp {
  opacity: 0; /* 最初は非表示 */
  transform: translateY(30px); /* 下に30pxの位置から */
  transition: opacity .8s, transform .8s; /* 透過率と縦方向の移動を0.8秒 */
}
/* フェードイン(スクロールした後) */
.js-fadeUp.is-inview {
  opacity: 1; /* 表示領域に入ったら表示 */
  transform: translateY(0); /* 30px上に移動する */
  transition-delay: .5s; /* フェード開始を0.5秒遅らせる */
}

今回はフェードインさせる際、下から上に上がってくるようにしています。

左右に動かしたい場合はtranslateYをtranslateXにすればOKです。

is-inviewというclass名はこの後のjQueryで付与します(このclass名は自由に決めてOK)

また表示領域に入ったと同時にフェードインが始まるとちょっと早いと思った場合は、transition-delayで開始のタイミングを遅らせる事が出来ます。

 

jQueryで表示領域に入ったらclassを付与させる

最後にjQueryです。

まずはコードを見てみましょう。

// スクロールして表示領域に入ったらclass付与
$(function () {
  $(".js-fadeUp").on("inview", function () {
    $(this).addClass("is-inview");
  });
});

これは、

  1. js-fadeUpというclassを持つ要素が表示領域に入ったら
  2. その要素に対してis-inviewというclass名を付与する

という意味になります。

なので今回は「スクロールして表示領域に入ったらclassを付与する」という事をしているだけなので、フェードイン以外にも色々と応用が効きます。

例えばスクロールして表示領域に入ったらフォントの色を変えるという事も可能です。

 

デモ

それでは最後に画像のフェードインとフォントの色が変わるサンプルを見てみましょう。

スクロールしていくと画像のフェードインが3種類(下から上、左から右、右から左)と、最後にフォントの色が変わりながら大きくなります(フォントはあまり使う機会はないと思いますが)

※先ほどのコードに追記しているので、コードは以下のタブを切り替えてご覧ください。

See the Pen
inview.js
by junpei (@junpei-sugiyama)
on CodePen.

これは実務でもかなり高確率で使うので、ぜひ覚えておきましょう。


コーディング案件の単価と作業効率を上げる!

Brainランキング1位獲得 & 3日で500部突破

クチコミ約300件
(平均スコア

今だけ!5つの無料特典あり🎁

👇画像をクリック

  • この記事を書いた人

じゅんぺい

タイ・バンコク在住のWeb制作フリーランス兼ブロガー▶︎37歳からWeb制作を開始▶︎コーディングとWordPressのオリジナルテーマ制作でこれまで80件以上納品▶︎Web制作中心の当ブログは月7万PV▶︎コーディングとWordPressのコンテンツを販売し、3日で500部突破&250万円&人気1位獲得。

-コーディング, Web制作, jQuery, アニメーション
-,