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);
});
});