スクロールしたらふわっと表示するサイトが増えていますよね。
なかなかそういうサイトをコーディングする機会がないのと、難しそうだったので躊躇していました。
でも、Animate.cssとWOW.jsを使えば簡単にできるんですね!
「Animate.css」と「wow.js」でWebサイトにアニメーションをつけてみようを参考にしました。
まずは、Animate.cssをダウンロードします。
head内にダウンロードしたAnimate.cssを読み込みます。
1 | < link rel = "stylesheet" href = "css/animate.css" > |
次にWOW.jsをダウンロードします。
WOW.jsは商用利用だと有料になるので、ライセンスをお確かめの上お使いください。
こちらはbody終了タグの直前に読み込みます。
1 2 | <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には下記のように書きました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | < 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は下記のように書きました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | .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 ; } h 1 { 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 ; } .img 100 { width : 100% ; height : auto ; } |