を返す理由を説明http://codepen.io/anon/pen/NGqPNzscrollTopスプライト()は常にここでは0
CSSを参照してください:
html {
height: 100%;
overflow-y: hidden;
}
body {
height: 100%;
overflow-y: auto;
}
JS:
$('body').bind("scroll", function() {
if ($('body').scrollTop()) {
console.log('triggered!');
} else {
console.log($('body').scrollTop());
}
});
スクロールイベントはbody要素の上に発射されています。スクロールバーはbody要素上にあり、html要素やwindow要素上にはありません。では、なぜdocument.body.scrollTopまたは$( 'body')。scrollTop()が0を返しますか?
これでスクロールバーの位置を検出できる方法はありますか、高さを100%にするにはどうしたらいいですか。オーバーフロー:html要素に隠されていますか?
ありがとうございます!
私はそれがWebKitのバグだと思います。 Firefoxで動作します。 https://code.google.com/p/chromium/issues/detail?id=423935 – Shikkediel
ありがとうございます!私はbodyをoverflow-y hiddenに設定し、height 100とoverflow-y autoのラッパーdivを追加し、scrollイベント/ scrollTopはdivで機能します。 – tdj