获取总页面高度/宽度
只需使用document.documentElement.scrollWidth
和scrollHeight
视口大小
有 2 种尺寸:带或不带滚动条。要使用滚动条获取视口大小,请使用:
var viewportWidthWithScrollbars = window.innerWidth || document.documentElement.offsetWidth;
(更改innerHeight
为offsetHeight
高度)
innerWidth
适用于 W3C 浏览器和offsetWidth
标准模式下的 IE。
要获得没有滚动条的视口大小(这可能是您需要的),请使用:
var viewportWidthWithoutScrollbars = document.documentElement.clientWidth;
垂直/水平滚动量
这是棘手的部分。除了 Chrome 使用documentElement.scrollLeft
和 Chrome(以及 IE 处于 quirks 模式)之外的所有浏览器都使用document.body.scrollLeft
,所以我们必须检查这两个值:
var pageScrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
我在与 W3C 兼容的浏览器(Opera、FF、Chrome)和带有 doctype 的 IE 8 中测试了这些方法(即仅在标准兼容模式下)。我没有在 quirks 模式下测试代码,但无论如何使用 quirks 模式是一个非常糟糕的主意。如果您仍想使用它,我想您必须检查属性body
而不是documentElement
.
我将此页面作为参考:http ://www.quirksmode.org/dom/w3c_cssom.html
您可以使用此页面在任何其他浏览器中进行测试:http: //jsbin.com/obewib/1