前提・実現したいこと
jqueryで下スクロールで非表示、上スクロールで表示するヘッダーを作ってます。
現状下記のコードで最低限の要件は満たすのですが上スクロールに対して遅延またはスクロール量を設定して発火タイミングをやや送らせたいと思ってます。
発生している問題
マウスの種類やノートPCのタッチパッドの種類によっては過敏に?上スクロール判定が起きてしまい頻繁にヘッダーが表示されてしまいます。
該当のソースコード
jquery
1$(function () { 2 var headerHeight = $('#site-header').outerHeight(); 3 var startPos = 0; 4 $(window).scroll(function () { 5 var currentPos = $(this).scrollTop(); 6 if (currentPos > startPos) { 7 if ($(window).scrollTop() >= 100) { 8 $('#site-header').css('top', '-' + headerHeight + 'px'); 9 } 10 } else if (startPos > currentPos) { 11 $('#site-header').css('top', 0 + 'px'); 12 } 13 startPos = currentPos; 14 }); 15});
CSS
1#site-header{ 2 position: fixed; 3 left: 0; 4 top: 0; 5 transition: 0.3s; 6 width: 100%; 7 height: 70px; 8 // 以下省略 9}
試したこと
上スクロールに対してはスクロール量を設定することはできたのですが下スクロールに対してができませんでした。
完全自作ではなくサンプルコードの寄せ集めぐらいしかできないスキルレベルですので完全に理解はできておりません。
どうぞお知恵をお借りしたく存じます。
あなたの回答
tips
プレビュー