1

この件に関しては、FF と Chrome (バージョン 22.0.1229.94 m) の違いがわかります。FFは正しいです(私は言うでしょう)。

ページを下にスクロールしてヒットしてから更新すると、のコールバック

$(window).ready(function(){
    console.log( $(document).scrollTop() );
});

コンソールには、ウィンドウの準備ができた後にスクロールされた量が表示されるはずですが、Chrome では常に0

ChromeでscrollTopの取得量を表示するにはどうすればよいですか?

4

2 に答える 2

0

問題は、ブラウザーが前のポイントまでスクロールするに Chrome のdocument.ready()が実行されることです。これが、常にゼロ値を取得する理由です。ここで解決策が提供されます:URLにアンカーが含まれている場合、ページロード時にWebページのスクロールバーの垂直位置を取得します

于 2012-11-26T16:48:24.893 に答える
0

コメントで誰かが言ったように、Chrome はページをロードしてから下にスクロールします。そのため、jQuery イベントが発生すると、スクロールは 0 になります。次のような回避策を実行できます。

$(document).ready(function() {
    function getScroll() {
        var scroll = $(window).scrollTop();
        ...
    }
    getScroll();

    $(window).scroll(getScroll);
});​

そのため、Chrome では$(window).scroll();、ページが読み込まれた直後に起動されます。

編集:そこでテストされましたhttp://fiddle.jshell.net/azaret/Mt65R/show/light/

于 2012-10-25T08:36:11.777 に答える