やりたい事
まずこちらがコードです
jQuery
1$(function(){ 2 3 $(window).on('scroll touchnmove', function() { 4 var $scroll = $(window).scrollTop(), 5 $about = $('.about'), 6 $aboutTop = $about.offset().top, 7 $aboutHeight = $about.height(), 8 $aboutBottom = $aboutTop + $aboutHeight, 9 $btn = $('.btn-wrapper'); 10 11 if ($scroll > $aboutTop) { 12 $btn.fadeIn(1000); 13 } else { 14 $btn.fadeOut(500); 15 } 16 if ($aboutBottom < ($scroll * 1.1)) { 17 $btn.hide(); 18 } 19 20}); 21コード
html
1<section class="about"> 2 <div class="btn-wrapper"> 3 <span class="btn">ボタン</span> 4 </div> 5</section> 6<section class="works"> 7</section> 8コード
css
1 .btn-wrapper { 2 display: none; 3 } 4 5 .btn { 6 position: fixed; 7 bottom: 0; 8 left: 0; 9 display: inline-block; 10 padding: 1rem 3rem; 11 width: 100vw; 12 font-size: 2rem; 13 font-weight: 600; 14 background: red; 15 color: #fff; 16 z-index: -1; 17 } 18 19コード
.aboutまでスクロールしたらfadeInする(それまでは非表示)
↓
.aboutから下にスクロールしたらfadeOutする(実際は.aboutの下より少し上でfadeOutする)
↓
.worksまでスクロールしたらまたfadeInする(ここの要素はhtmlメソッドで追加)
のようにしたいのですが、
if ($aboutBottom < ($scroll * 1.1)) { $btn.fadeOut(500); } コード
の条件式を追加すると、
一度はfadeOutするのですが、その後にまたfadeInします。
条件式の書き方が悪くてこのような動作になっているのは分かるのですが、
恥ずかしながらどう書けばいいか分かりません。
どのようにしたら思うような動作をさせる事ができるのでしょうか?
回答宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/09/11 04:15