arrow-left arrow-right envelope facebook feedly folder home html-tag person tag twitter wordpress rss user get-pocket envira google-plus

wow.jsとAnimate.cssでスクロール連動アニメーション

今回は有名すぎるスクリプトでスクロール連動アニメーションを作ります。私も最初このスクロール連動でアニメーションをするサイトを見て頭の中が「???」となったものでしたが、意外と簡単に実装できますし、効果的に画像や文章を印象付けることができます。とにかくかっこいい、クールの一言です。

wow.jsとAnimate.css

Animate.cssというCSSライブラリをラップした、javascriptライブラリがwow.jsです。スクロールに合わせてアニメーションを行う仕組みです。この2つを組み合わせて使います。

Animate.css


Animate.cssは要素のclassにアニメーションを指定するだけで、簡単にアニメーションを実装することができるスタイルシートライブラリです。
公式サイトで動きを確認することができます。

wow.js


wow.jsはアニメーションのトリガー、アニメーションの詳細な動きを設定できるJavaScirptです。公式サイトの柴犬が超かわいい。
公式サイトをスクロールしていくと表示されていますが、商用サイトで使う場合は有償となっています。商用サイトでこれと同じような効果を実装するには代替ライブラリが必要ですね…

実装してみよう!

実装方法は以下です。

  1. wow.jsをダウンロード
  2. wow.jsとAnimate.cssを読み込み
  3. wow.js呼び出しの記述
  4. マークアップ
  5. その他

1.wow.jsをダウンロード

GitHubからダウンロードします。

ドロップダウンボタンをクリックして、をクリックします。

ZIPファイルを解凍して、動作に必要なファイルを抽出します。

wow.jsdistフォルダに、animate.csscss > libフォルダに格納されています。
この2つのファイルを使います。もちろん wow.jswow.min.js を代わりに使ってもOKです。

2.wow.jsとAnimate.cssを読み込み

ここはサクッと行きましょう。それぞれのファイルをHTML内に読み込ませます。

それぞれ<head>内でも</body>直上に書いても問題なさそうです。

3.wow.jsを呼び出す

wow.jsを呼び出す記述を書いていきます。
これも<head>内でも</body>直上に書いてもOKなようです。

4.マークアップする

準備は整いました。マークアップしていきましょう。

まず、適用する要素に .wow を加えます。

次にAnimate.cssの効果を足していきます。

基本はこれで終わり、要素が表示された時にアニメーションがスタートします。
重ねての案内になってしまいますが、Animate.cssの動き方と対応するクラス名は公式サイトで確認することができます。いろいろ試してみてくださいね。

次は応用編、data属性を使ってアニメーションの始まるタイミングや持続時間を調整します。

それぞれのdata属性についての説明は以下です。

  • data-wow-duration
    指定した秒数の間に表示していきます
  • data-wow-delay
    スクロールによって要素に到達した後、指定した秒数だけ遅らせて表示を開始します
  • data-wow-offset
    アニメーションを開始する距離を指定します。基準点は画面底辺です
  • data-wow-iteration
    指定した回数分アニメーションを繰り返します

data-wow-offset がわかりづらいですね…スクロールしていくと最初に要素が現れるのが画面(ブラウザ)の一番下になりますよね…?
何も指定しない場合はそこからアニメーションが開始されるのですが、data-wow-offset を使用すると、始める位置を垂直方向にずらすことが可能です(正の数の場合は下にずれます)。
…もう少しうまい書き方があるといいのですが…

私もサンプルを作ってみたので、よかったら参考にしてみてくださいね。

See the Pen wow.js+Animate.css by necomacustom (@tamayura) on CodePen.27739



動かない場合はCodepenの右下に現れる「RERUN」をクリックしてみてください。

5.その他

レスポンシブデザインのサイトにwow.jsを用いた場合、スマートフォンではこのアニメーションを動かしたくないということもあると思います。その場合は

先ほどのwow.jsの呼び出しに2行目の mobile: false を追加してください。

注意事項

先ほど、商用では有償ということを書きましたが、この他CDNで読み込む場合、あるいはAnimate.css公式サイトでファイルをダウンロードした場合において一部動作しないモーションがあるようです。これについては検証中です。

今回は以上です。お疲れ様でした!


2015年の冬、職業訓練を終える1ヶ月前に出来上がっていたポートフォリオに納得がいかなくて、いろいろな人のポートフォリオサイトを見ながら作り直していたのですが、スクロールするごとにアニメーションするサイトの仕組みが全然わからなくて修了した思い出からこれを書きました。
あの頃突き詰めて調べたり、実際に手を動かすことが足りていなかったのだなと現在では思うのですが、これからもさらに手を動かして「頭でわかる」ではなく「実際にできる」ことを増やしていきたいなと改めて思ったねこま(@necomacustom)でした。

Share

Leave a comment

PAGE TOP