1

ユーザーがページのスクロールを開始するとサイトのロゴを非表示にし、ユーザーがスクロールしてトップに戻ると再び表示する機能を作成しようとしています。非表示部分の作業をトリガーするのは簡単ですが、何らかの理由で、スクロールバック時にトップイベントがトリガーされません. 位置のコンソール ログを実行すると、位置が 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 });
    }
}

編集:解決済み、更新されたコードを参照してください。

4

1 に答える 1

2

あなたのコードは正常に動作しています: http://jsfiddle.net/jQ8JD/

ショーの実行を妨げている他の js エラー (開発者コンソールでエラー数を表示) か、show_logo()関数内にエラーがある可能性があります。

于 2013-05-27T20:18:30.947 に答える