正文和html标签的100%高度会导致滚动问题

时间:2014-08-03 23:55:57

标签: javascript css

当使用以下css时,我注意到了一些意想不到的事情(我总是这样):

body, html{height:100%; overflow-x:hidden}

当页面的高度高于屏幕时,垂直滚动条会按预期显示,并且可以在body元素(而不是窗口)上检测到scroll事件。麻烦的是window.pageOffsetY属性不再反映滚动位置。这也会影响鼠标事件的pageY属性。

我已经设置了一个小提琴http://jsfiddle.net/kevmc/n2sJB/,您可以在其中看到这一点。

只有当body和html标签都具有上述样式时才会出现问题。我知道简单的答案是不要使用这些样式,但我正在尝试编写一个javascript组件,我可以在许多网站上使用,我并不总是可以控制样式表。

所以我的问题是如何在上述样式到位时测量滚动位置?

2 个答案:

答案 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);