10秒で実装!スクロールすると下から横からふわっとコンテンツを表示させる方法

WEB制作・開発実例・コラム
2020.02.28

画面をスクロールすることで、画面の端からふわっとコンテンツが表示されるWEBサイト良いですよね。
アニメーションのタイミングやスピードでそのサイトの世界観を作り上げる事が出来るので、是非取り入れたいテクニックの一つではないでしょうか。

ふわっと表示させる系はライブラリが豊富でいろいろな実装方法がありますが、今回はおそらく最も手軽に「ふわっと表示されるコンテンツ」を実装できるjsライブラリ「ScrollReveal.js」をご紹介致します。

ScrollReveal.jsの導入方法

ScrollReveal.jsは、特定の要素に対して「表示 or 非表示」のアニメーションを手軽に実装できるJavaScriptライブラリです。
MicrosoftのPowerPointなどでお馴染みのアニメーション「フロートイン」と「フロートアウト」などを、コードをコピペするだけで再現することができます。

公式サイトはこちらですhttps://scrollrevealjs.org/

では早速、ScrollReveal.jsの導入方法を見ていきましょう。

scriptタグの書き方

公式サイトからファイルもダウンロードできますが、ScrollReveal.jsはCDNを利用出来るのこちらの方がお手軽で速いです!
以下のCDNをhead内に記述しましょう。

<script src="https://unpkg.com/scrollreveal"></script>

要素の指定方法

次はアニメーション効果を実装する要素をつくっていきましょう。
たとえばh1タグををアニメーションさせたい場合は次のように書きます。

<h1 class="アニメーションさせる要素のクラス名">
ふわっと表示する見出し
</h1>

そしてscriptで下記を読み込むだけ。

$(function(){
            ScrollReveal().reveal('.アニメーションさせる要素のクラス名');
        });

なんとたったこれだけで、要素をフェードイン表示することができます!

僅か10秒で実装できてしまいましたね。

ScrollReveal.jsのオプション

ひとまずこれだけでも「ふわっと表示」を実現することはできますが、ScrollReveal.jsはオプションも豊富。
活用することで更に素敵なアニメーションにすることができます。

ScrollReveal.jsのオプションの種類

説明
delay アニメーション発生のタイミングを遅延させることができます。 数値型。ミリ秒単位で設定可能
distance 要素を移動させながら表示する場合に設定します。px、%などを指定し、どのくらいの距離を移動させるのかを設定します。 文字列型。px/em/%
origin オプション「distance」と一緒に使います。要素がどの方向から移動してくるのかを設定します。 文字列。top/right/bottom/left
duration アニメーション完了までの速度を遅延させることができます。要素の表示を早めるorゆっくりさせるときに使います。 数値型。ミリ秒単位で設定可能
opacity アニメーション開始前の要素の不透明度を設定できます。デフォルトでは、要素は完全非表示になっています。 数値型。0〜1
rotate 要素を回転させながら表示させるときに設定します。 X、Y、Z軸で回転を指定できます。rotate: { x: 0, y: 0, z: 0 }
scale アニメーション開始時点での要素の大きさを設定します。要素を拡大させながら表示させたいときに使います。 数値型。デフォルトは0.9。2倍なら2、半分なら0.5
delay アニメーション発生のタイミングを遅延させることができます。 数値型。ミリ秒単位で設定可能

以上が、アニメーションをグレードアップさせるためによく使いそうなオプションです。
今回紹介したオプションはあくまで一部です。より詳細に設定したい方は、ぜひ公式サイトでオプションの種類と使い方ご確認ください。

ScrollReveal.jsのオプションの使い方

ではこれらのオプションの使い方をみていきましょう。
「ScrollReveal.jsの導入方法」で書いたコードに手を加えていきます。

今回は、以下の条件のアニメーションを作っていきます。

  • アニメーションの発生を、500ミリ秒遅延させる
  • 要素は右側から200px移動させながら表示する

これらの条件を達成するためには「delay」「distance」「origin」の3つのオプションを設定する必要があります

では早速取り掛かっていきましょう。
bodyタグ内に入力したコードを、以下のように書き換えます。

<script>
	ScrollReveal().reveal('.アニメーションさせる要素のクラス名', { delay: 500, distance: '50px', origin: 'right' });
</script>

これで条件に合致するアニメーションを再現することができました。

しかしこれではコードが見づらいですね。
オプションが1つ2つの場合は良いのですが、複数設定する場合は今後のことをふまえて下記のようにコードをきれいに整えていきましょう。

先ほど書いたコードを以下のように書き換えます。

<script>
	var 任意の変数名= {
		delay: 500, //アニメーションの発生タイミング
		distance: '200px', //要素の移動距離
		origin: 'right' //要素が移動してくる方向
	};
	ScrollReveal().reveal('.アニメーションさせる要素のクラス名', 任意の変数名);
</script>

オプションを配列変数化し、その変数を引数として与えるようにしました。
このようにコードを記述することで、保守のときにも迷わず編集できるのではないでしょうか?

まとめ

カッコいいアニメーションがコピペだけで実装できるなんて、すごくありがたいライブラリですよね。
こういったアニメーションはjQueryで実装する場合が多いですが、こちらはjQueryに依存せず単体で実現可能です。

他のアニメーション用ライブラリを実装しない案件であれば、このScrollReveal.jsが最適ですね。
皆様もぜひ使ってみてください。

SEOやWEB制作に関する情報を検索

コラム

ピックアップコラム

最新コラム

人気コラム

過去の記事

ご質問やご相談などお気軽にお問い合わせください。

お電話でのお問い合わせはこちら

03-5829-9912

受付時間:平日10:00~19:00(土・日・祝日を除く)