以下のコードによって、スクロールすると下からフェードインする機能を実装しようとしていますが、上手く実装できません。
できたこと
・スクロールによってフェードインさせる(一気に)
・少しでもスクロールするとフェードインする
できないこと
・少しでもスクロールすると、ページの上から下まで'fadein-all'で囲った要素が全てフェードインしてしまう
・JQuery内の数値(300など)を変更しても上記の動きと全く同じ動作をする
JQueryに関してはほぼコピペで実装したため、テストなどを詳しくすることができません。
情報量が少なすぎて申し訳ありませんが、原因など分かる方はいらっしゃいませんでしょうか。
JQuery
1$(function(){ 2 $(window).scroll(function (){ 3 $('.fadein-all').each(function(){ 4 var position = $(this).offset().top, 5 scroll = $(window).scrollTop(), 6 windowHeight = $(window).height(); 7 if (scroll > position - windowHeight + 300){ 8 $(this).addClass('active'); 9 } 10 }); 11 }); 12});
CSS
1.fadein-all { 2 opacity: 0; 3 transform: translate(0, 200px); 4 transition: all 1500ms; 5} 6 7.fadein-all.active { 8 opacity: 1; 9 transform: translate(0, 0); 10} 11
HTML
1 <div class="fadein-all"> 2 <div id="about"> 3 <a href="URL"> 4 <h2 class="about-title">ABOUT</h2> 5 内容 6 </a> 7 </div> 8 </div> 9 10 <div class="fadein-all"> 11 <div id="works"> 12 <a href=""> 13 <h2 class="works-title">WORK</h2> 14 内容 15 </a> 16 </div> 17 </div> 18
回答1件
あなたの回答
tips
プレビュー