JavaScript获取滚动的窗口X / Y位置

我希望找到一种方法来获取当前可见窗口的位置(相对于总页面宽度/高度),以便可以将其强制从一个部分滚动到另一部分。但是,要猜测哪个对象对您的浏览器拥有真正的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);直到到达所需的位置。

回答:

jQuery(v1.10)用来查找的方法是:

var doc = document.documentElement;

var left = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);

var top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);

那是:

  • window.pageXOffset首先进行测试,并使用它(如果存在)。
  • 否则,使用document.documentElement.scrollLeft
  • 然后减去document.documentElement.clientLeft它是否存在。

的减法document.documentElement.clientLeft/

Top似乎只需要正确的地方已应用边界(不填充或利润率,但实际边界)的根元素的情况下,在那个,可能只在某些浏览器。

以上是 JavaScript获取滚动的窗口X / Y位置 的全部内容, 来源链接: utcz.com/qa/416868.html

回到顶部