2012-06-25 43 views
15

我试图找到一个类似于jQuery的scrollTop()但没有jQuery的滚动条的垂直位置。有没有其他的选择?找到没有jQuery的滚动条的垂直位置

+0

不是[element.scrollTop](https://developer.mozilla.org/en/DOM/element.scrollTop)足够? –

+1

刚刚阅读jQuery的scrollTop()的源代码:https://github.com/jquery/jquery/blob/master/src/offset.js – snies

回答

35

跨浏览器的解决方案:

var supportPageOffset = window.pageXOffset !== undefined; 
var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat"); 

var scrollLeft = supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft; 
var scrollTop = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop; 

source

+0

我认为这应该被接受为答案。接受答案中的解决方案不是跨浏览器的。 – dragn

+0

你是对的,开关 – ama2

+0

很少的语法校正:在第一行结尾的逗号会产生一个错误 - 保重 –

4

scrollX和scrollY .... scrollY是jQuery的等效scrollTop()

6

是,滚动位置的DOM中仍然存在:

window.scrollY; //for vertical scroll. 

我如何发现这一点:

  1. 在Chrome中,右键单击并选择检查元素。
  2. 查找并单击“Show Console”按钮(左下)
  3. 在控制台中键入window.scroll以查看选项。

- 这是解决大量JavaScript问题的特殊工作流程。

我看到window.scrollTo(0)作为选项滚动到顶部。

+0

不是XBrowser - https://developer.mozilla.org/en-US/ docs/Web/API/Window/scrollY –