2012-06-25 80 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 –