簡體   English   中英

決定滾動哪個,document.documentElement或document.body

[英]Deciding which to scroll, document.documentElement or document.body

我正在構建一個頁面,當發生某些事情時,必須將動畫滾動到某些位置。

我正在將jQuery.animate應用於document.documentElement ,它似乎在Firefox和某些版本的IE上正常工作,而在Chrome和其他版本的IE上,它必須應用於document.body才能工作。

我在這里是個白痴嗎? 我錯過了什么? 如果我不是,那么檢測哪一個使用的正確方法是什么?

你不是白痴,它總是很棘手,請看這里的評論:)

據我所知, $('html, body').animate({scrollTop: '-=100'})現在適用於所有主流瀏覽器。

看來這樣做的安全方法是立即在document.documentElementdocument.bodywindow上運行動畫。 一個人肯定會工作。

雖然這個解決方案很丑陋,但在大多數情況下都適用。

有幾個非常古老的方法(不是標准的,但在每個瀏覽器中工作): window.scroll ()window.scrollTo()window.scrollBy()等。 有關文檔,請參閱此MDN頁面: https//developer.mozilla.org/en-US/docs/DOM/Window.scroll

請注意,雖然在Firefox或Chrome中這些方法只是更改scrollTop / scrollLeft並且不會導致立即滾動(滾動延遲直到javascript事件處理程序返回),在Opera和IE中這些方法實際上會立即滾動窗口(這不是很好)。

如果所有瀏覽器都可以使用相同的元素進行滾動,那將會好得多。

一個易於使用的插件是scrollTo: http//demos.flesler.com/jquery/scrollTo/

否則你通常可以使用$(window).animate();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM