下記のサイトを元に、ページ下方にスクロールするとfooter要素が出現する実装をしました。
https://recooord.org/fadein-window-scroll/
HTML
<body> <header> ヘッダー </header> <section class="welcome_section"> <div class="wrap"> <div class="arrow"></div> <p>テキスト</p> </div> </section> <footer class="footer_nav fadeInUp"> <div class="wrap"> <ul class="footer_flex"> <li>リスト</li> <li>リスト</li> <li>リスト</li> <li>リスト</li> </ul> </div> </footer> </body>
CSS
body { background-color: #000; height: 100%; color:#fff; } header { height:1500px; } .wrap { position: relative; max-width: 1030px; margin: 0 auto; height: auto; } .welcome_section { padding: 0 0 100px; font-size: 2.5rem; text-align: center; } .arrow { position: relative; } .arrow::before { content: ""; display: block; position: absolute; top: 0; right: 50%; width: 20px; height: 20px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: translateX(-50%) rotate(135deg); } .welcome_section p { padding-top: 100px; } .footer_nav { width: 100%; height: 120px; background-color: #fff; } .footer_nav ul li { display: inline-block; color: #000; } .footer_flex { width: 80%; padding: 40px 0; margin-right: 10%; margin-left: 10%; flex-wrap: wrap; justify-content: space-between; } .footer_flex li { font-family: Arial,Raleway, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; width: 24%; text-align: center; font-size: 1.8rem; padding: ; } .fadeInUp { margin-bottom: -0.1px; opacity: 0; transform: translateY(80px); transition: 1.5s; }
jQuery
$(function(){ function animation(){ $('.fadeInUp').each(function(){ var target = $(this).offset().top; var scroll = $(window).scrollTop(); var windowHeight = $(window).height(); if (scroll > target - windowHeight){ $(this).css('opacity','1'); $(this).css('transform','translateY(0)'); } }); } animation(); $(window).scroll(function (){ animation(); }); });
footerがフェードインしてきたときにfooter下方に一瞬黒の余白が出来てしまいます。
おそらくスクロール量の取得がスクロールスピードに間に合っていないのではないかと思っています。(ページ下方でページをリロードした(スクロールをしない)際には余白は出現しません)
こういった場合、どのようにすれば余白を消すことが出来るのでしょうか。
回答1件
あなたの回答
tips
プレビュー