前提
サイトのリニューアル作業を行っています。
概ね完成して最終調整中なのですが、jqueryを用いたTOPへ戻るボタンの挙動で
追加の処理が必要になりました。
実現したいこと
現在、ページTOPから100pxスクロールするとボタンがfadeInで表示され画面右下に固定、
ページTOPから100px未満まで戻るとfadeOutで非表示、という処理までは入れているのですが
ページ途中でスクロールを止めた際、場所によってTOPへ戻るボタンがジャマになってしまう部分があったため
スクロールを止めて一定時間(ミリ秒単位などで変更できるとありがたいです)経過するとfadeOutし、
再びスクロールを開始するとボタンがfadeInで表示されるといったような処理を追加したいと考えています。
該当のソースコード
html
1 <!-- TOPへ戻るボタン --> 2 <div id="page-top"> 3 <a href="#"><img src="../images/topButton.png" alt="ページトップボタン" /></a> 4 </div> 5 <!-- /TOPへ戻るボタン --> 6
css
1#page-top a { 2 bottom: 0; 3 color: #fff; 4 position: fixed; 5 right: 20px; 6 bottom: 20px; 7 z-index: 1; 8}
jquery
1// TOPへ戻るボタン 2$(function () { 3 const pageTop = $("#page-top"); 4 pageTop.hide(); 5 $(window).scroll(function () { 6 if ($(this).scrollTop() > 100) { // 100pxスクロールしたら発火 7 pageTop.fadeIn(); // 100px以上スクロールしたらボタンをフェードイン 8 } else { 9 pageTop.fadeOut(); // 100px以下になったらボタンをフェードアウト 10 } 11 }); 12 pageTop.click(function () { 13 $("body,html").animate( 14 { 15 scrollTop: 0, 16 }, 17 500 // 500ミリ秒かけてページトップに戻る 18 ); 19 return false; 20 }); 21});
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。