ユーザーがページのスクロールを開始するとサイトのロゴを非表示にし、ユーザーがスクロールしてトップに戻ると再び表示する機能を作成しようとしています。非表示部分の作業をトリガーするのは簡単ですが、何らかの理由で、スクロールバック時にトップイベントがトリガーされません. 位置のコンソール ログを実行すると、位置が 0 になっていることがわかります。
$(window).scroll( function() {
if( $(this).scrollTop() > 0 ) {
hide_logo();
}
else {
show_logo();
}
});
function show_logo() {
if ( $('header').offset().top < 10 ) {
$('body').animate({ marginTop: 180 }, 400);
$('header').animate({ marginTop: 0 }, 400});
}
}
function hide_logo() {
if ( $('header').offset().top < 10 ) {
$('body').animate({ marginTop: 90 }, 400);
$('header').animate({ marginTop: -90 }, 400 });
}
}
編集:解決済み、更新されたコードを参照してください。