前提・実現したいこと
jQueryとcssだけでスクロールするとフェードインするアニメーションを作っています。
スクロールするとscrollinのクラスが付与され実行されopacityで非表示になりfadeinで表示されるのですが
scrollinが付与されず画像が非表示になりません。
jQueryのコードが間違えているのでしょうか?
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="keywords" content=""> 6 <meta name="description" content=""> 7 <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=auto"> 8 <meta property="og:site_name" content=""> 9 <meta property="og:title" content=""> 10 <meta property="og:url" content=""> 11 <meta property="og:type" content=""> 12 <meta property="og:image" content=""> 13 <title></title> 14 <link rel="stylesheet" href="css/style.css"> 15 <link rel="stylesheet" href="js/fadein.css"> 16 </head> 17 <body> 18 <div id="wrapper"> 19 <div class="fadein"> 20 <div>子要素</div> 21 <div>子要素</div> 22 <div>子要素</div> 23 <div>子要素</div> 24 </div> 25 </div> 26 </body> 27</html>
css
1body { 2 margin: 0; 3 padding: 0; 4} 5 6#wrapper { 7 8} 9 10.inner { 11 max-width: 1200px; 12 width: 100%; 13 margin-left: auto; 14 margin-right: auto; 15} 16 17.fadein { 18 opacity: 1; 19 transform : translate(0, 50px); 20 transition : all 1500ms; 21} 22 23.fadein.scrollin{ 24 opacity: 0; 25 transform: translate(0, 0); 26} 27
jQuery
1$(window).scroll(function (){ 2 $('.fadein').each(function(){ 3 var elemPos = $(this).offset().top, 4 scroll = $(window).scrollTop(), 5 windowHeight = $(window).height(); 6 if (scroll > elemPos - windowHeight + 100){ 7 $(this).addClass('scrollin'); 8 } 9 }); 10 });
試したこと
ネットで調べて何度か同じような実装を行ったのですが
結果は同じようになります。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/01 05:17
2019/11/01 05:21
2019/11/01 05:28 編集
2019/11/01 05:30
2019/11/01 05:32
2019/11/01 05:38
2019/11/01 05:47
2019/11/01 05:58