我希望找到一种方法来获取当前可视窗口的位置(相对于总页面宽度/高度),这样我就可以使用它来强制从一个部分滚动到另一个部分。但是,在猜测哪个对象拥有浏览器的真正 X/Y 时,似乎有很多选择。
我需要其中哪些来确保 IE 6+、FF 2+ 和 Chrome/Safari 正常工作?
window.innerWidth
window.innerHeight
window.pageXOffset
window.pageYOffset
document.documentElement.clientWidth
document.documentElement.clientHeight
document.documentElement.scrollLeft
document.documentElement.scrollTop
document.body.clientWidth
document.body.clientHeight
document.body.scrollLeft
document.body.scrollTop
还有其他人吗?一旦我知道窗口在哪里,我就可以设置一个事件链,它会慢慢调用 window.scrollBy(x,y);
直到它达到我想要的点。
原文由 Xeoncross 发布,翻译遵循 CC BY-SA 4.0 许可协议
jQuery (v1.10) 用来找到它的方法是:
那是:
它首先测试
window.pageXOffset
并在它存在时使用它。否则,它使用
document.documentElement.scrollLeft
。然后它减去
document.documentElement.clientLeft
(如果存在)。document.documentElement.clientLeft
/Top
的减法似乎只需要纠正您已将边框(不是填充或边距,而是实际边框)应用于根元素的情况,并且可能仅在某些浏览器中。