当使用以下css时,我注意到了一些意想不到的事情(我总是这样):
body, html{height:100%; overflow-x:hidden}
当页面的高度高于屏幕时,垂直滚动条会按预期显示,并且可以在body元素(而不是窗口)上检测到scroll事件。麻烦的是window.pageOffsetY属性不再反映滚动位置。这也会影响鼠标事件的pageY属性。
我已经设置了一个小提琴http://jsfiddle.net/kevmc/n2sJB/,您可以在其中看到这一点。
只有当body和html标签都具有上述样式时才会出现问题。我知道简单的答案是不要使用这些样式,但我正在尝试编写一个javascript组件,我可以在许多网站上使用,我并不总是可以控制样式表。
所以我的问题是如何在上述样式到位时测量滚动位置?
答案 0 :(得分:1)
当您为html和body元素设置height:100%
时,body变为可滚动(不像以前那样是html / window),因此您应该检查body元素的滚动偏移:jQuery('body').scrollTop();
或尝试solution without jQuery from Engineer
答案 1 :(得分:0)
我使用了$('body').height($('body').height() + 1);
。