1

ページ/ウィンドウをスクロールしているときに指定要素のクラスを追加したいので、これにオフセットを使用しますが、それは問題ではありません-何が問題なのですか?助けのための多くのthx。これは私のコードです:

$(window).scroll(function() {
    var top_offset = $('body').offset().top;
    if ((top_offset >= 40)) {
        $('nav').addClass('docked_nav');
    }
});
4

3 に答える 3

3

変数にoffest値を既にフェッチしましたtop_offset。これには数値が含まれており、オブジェクトではありません。したがって、どちらかを使用します

if (top_offset>= 40) {
        $('nav').addClass('docked_nav');
    }

または、変数を使用しないでください

if ($('body').offset().top >= 40) {
        $('nav').addClass('docked_nav');
    }

アルン・キルの答えも考慮する必要があります

于 2012-10-24T10:06:15.640 に答える
1
$('.nav').addClass('docked_nav'); if nav is a class or `#nav` if nav is id
于 2012-10-24T10:05:08.450 に答える
0

ウィンドウが実際のスクロール要素である場合、上から本体のオフセットを取得していると仮定します。この場合、次のような関数を呼び出して、ウィンドウのスクロール位置を取得することができます。

function getWindowScrollPos() {
    return (window.pageYOffset !== undefined) ? window.pageYOffset :
    (document.documentElement ||
     document.body.parentNode ||
     document.body).scrollTop;
}

1つまたは複数の要素をスティッキー(上部に貼り付ける)にしようとしている場合は、内部で何が起こっているかを心配することなく、私が作成したこのライブラリを簡単に使用してそれを処理できます。

https://github.com/vhiremath4/Balloon

編集:

明確でない場合に備えて、jQueryのoffsetメソッドを使用する代わりに、そのgetWindowScrollPos関数を呼び出してtop_offsetに割り当てます。

于 2012-10-24T10:10:18.090 に答える