2

ユーザーがウィンドウをスクロールしたときに、要素 (div) の位置 (position().top) を取得する必要があります。問題は、スクロール後に position().top を呼び出して新しい位置を取得すると、スクロール前と同じ値になることです。ここに少しのコードがあります:

$('document').ready(function() {

    alert($('#my-element').position().top);

    $(window).scroll(function() {
        alert($('#my-element').position().top);
    });
});

変わらないのはどうして?新しい新鮮な値を取得する方法はありますか?

4

2 に答える 2

2

を探していると思います.scrollTop()

scrollTop() メソッドは、選択した要素の垂直スクロールバーの位置を設定または返します。

詳しくはこちらをご覧ください。

これは、必要なものの実用的なフィドルです。

gustavohenke によると、使用する必要があります。offset()代わりに、.position()親に対して相対的であるためです。.offset()ドキュメントウィンドウに相対的です。

于 2013-05-17T15:23:57.650 に答える