スクロールしたらふわっと表示するサイトが増えていますよね。
なかなかそういうサイトをコーディングする機会がないのと、難しそうだったので躊躇していました。
でも、Animate.cssとWOW.jsを使えば簡単にできるんですね!
「Animate.css」と「wow.js」でWebサイトにアニメーションをつけてみようを参考にしました。
まずは、Animate.cssをダウンロードします。
head内にダウンロードしたAnimate.cssを読み込みます。
<link rel="stylesheet" href="css/animate.css">
次にWOW.jsをダウンロードします。
WOW.jsは商用利用だと有料になるので、ライセンスをお確かめの上お使いください。
こちらはbody終了タグの直前に読み込みます。
<script src="js/wow.min.js"></script> <script>new WOW().init();</script>
スクロールして表示領域に入ったらふわっと表示させたい箇所に、
class=”wow Animate.cssで指定できるアニメーション” オプション
を指定します。
オプションは下記があります。
- data-wow-duration:
どれくらいのスピードかけて表示するか時間を指定- data-wow-delay:
スクロールで表示領域に入ったら指定した秒数だけ遅らせて表示開始する- data-wow-offset:
アニメーションを開始する距離を指定(基準値は画面下)- data-wow-iteration:
何回アニメーションを繰り返すか指定
実際にサイトを作成してみました。
htmlには下記のように書きました。
<header> <div class="contain"> <nav> <h1>LOGO</h1> <ul> <li class="wow fadeInUp" data-wow-duration="2s" data-wow-delay="1s">fadeInUp</li> <li class="wow fadeInUp" data-wow-duration="1s" data-wow-delay="1s">fadeInUp</li> <li class="wow fadeInDown" data-wow-duration="2s" data-wow-delay="1s">fadeInDown</li> <li class="wow fadeInDown" data-wow-duration="2s" data-wow-delay="1.2s">fadeInDown</li> </ul> </nav> </div> </header> <figure><img class="wow slideInLeft img100" data-wow-duration="2s" data-wow-delay="0.5s" src="img/img-1.jpg" alt=""></figure> <figure><img class="wow zoomInUp img100" data-wow-duration="2s" data-wow-delay="0.5s" src="img/img-2.jpg" alt=""></figure> <figure><img class="wow fadeInDownBig img100" data-wow-duration="2s" data-wow-delay="0.5s" src="img/img-3.jpg" alt=""></figure> <figure><img class="wow flipInX img100" data-wow-duration="2s" data-wow-delay="0.5s" src="img/img-4.jpg" alt=""></figure>
cssは下記のように書きました。
.contain { width: 1000px; margin: 0 auto; } img {vertical-align: bottom;} header { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 99999; } nav { display: -webkit-flex; display: flex; justify-content: space-between; text-align: center; margin-top: 10px; } h1 { color: #fff; text-shadow: 1px 1px 3px #000; width: 150px; padding: 10px 0; } nav ul { display: flex; } nav li { color: #fff; text-shadow: 1px 1px 3px #000; width: 150px; padding: 10px 0; } .img100 { width: 100%; height: auto; }