Green SockとSUPER SCROLL ORAMAでスクロールに合わせて要素を出す方法。
公式のgithubからダウンロードしてきたJSフォルダをそのまま放り込み、この2つのファイルだけ読み込みます。
<script language="javascript" type="text/javascript" src="js/superscrollorama/jquery.superscrollorama.js"></script> <script language="javascript" type="text/javascript" src="js/superscrollorama/greensock/TweenMax.min.js"></script>
SUPER SCROLL ORAMA公式サイト
http://johnpolacek.github.io/superscrollorama/
公式サイトは英語ですが、使い方が書かれているので参考なります。
デモサイト
https://webcreator.webmeo.org/demo/super_scroll_orama/
使い方
html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=1180, maximum-scale=1.0, user-scalable=yes"> <meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="format-detection" content="telephone=no"> <!-- js --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <script language="javascript" type="text/javascript" src="js/superscrollorama/jquery.superscrollorama.js"></script> <script language="javascript" type="text/javascript" src="js/superscrollorama/greensock/TweenMax.min.js"></script> <script language="javascript" type="text/javascript" src="js/func.js"></script> <!-- css --> <link rel="stylesheet" href="css/basic.css" type="text/css" /> <link rel="stylesheet" href="css/common.css" type="text/css" /> <link rel="stylesheet" href="css/style.css" type="text/css" /> <title>demo</title> <!--[if lt IE 9]> <script src="js/html5shiv.min.js"></script> <script src="js/css3-mediaqueries.js"></script> <![endif]--> </head> <body> <header> <p class="tac">demo</p> </header> <main> <div class="container"> <article> <section class="sec01"> <p class="st">左からフェードイン</p> <ul class="flex_no_justify"> <li class=" fade01"><img src="images/common/dummy.jpg" alt=""></li> <li class=" fade02"><img src="images/common/dummy.jpg" alt=""></li> <li class=" fade03"><img src="images/common/dummy.jpg" alt=""></li> </ul> </section> <section class="sec02"> <p class="st">上がりながらフェードイン</p> <ul class="flex_no_justify"> <li class=" fade01"><img src="images/common/dummy.jpg" alt=""></li> <li class=" fade02"><img src="images/common/dummy.jpg" alt=""></li> <li class=" fade03"><img src="images/common/dummy.jpg" alt=""></li> </ul> </section> </article> </div> </main> <footer id="footer"> <small></small> </footer> </body> </html>
css
header { padding: 100px 0 ; } article { padding: 500px 0 ; } .sec01 { width: 1000px; margin: 0 auto 300px; } .sec01 ul li { width: 33%; } .sec02 { width: 1000px; margin: 0 auto 300px; } .sec02 ul li { width: 33%; } .sec02 .fade01 { position: relative; top: 0; } .sec02 .fade02 { position: relative; top: 0; } .sec02 .fade03 { position: relative; top: 0; }
jsコード
$(document).ready(function(){ var movetime = 1;//動作時間 var movestart = 0; //起動タイミング var movewidth = 100; //動作距離 var controller = $.superscrollorama({ playoutAnimations: true }); //左からフェードイン controller.addTween( $('.sec01'), (new TimelineLite()) .append([ TweenMax.fromTo($('.sec01 .fade01'), (movetime * 2), {css:{opacity: 0}, immediateRender:true}, {delay:0, css:{opacity: 1}}), TweenMax.fromTo($('.sec01 .fade02'), (movetime * 2), {css:{opacity: 0}, immediateRender:true}, {delay:0.2, css:{opacity: 1}}), TweenMax.fromTo($('.sec01 .fade03'), (movetime * 2), {css:{opacity: 0}, immediateRender:true}, {delay:0.4, css:{opacity: 1}}), ]), movestart, // scroll duration of tween false, //offset false //reverse ); //上がりながらフェードイン $('.sec02 li').each(function(){ controller.addTween($(this), TweenMax.from($(this),movetime,{ css:{opacity:0, top: '+='+movewidth+'px'}}), movestart, false, false); }); });