![](/img/trans.png)
[英]Why does this code use both `document.body` and `document.documentElement`?
[英]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.documentElement
, document.body
和window
上運行動畫。 一個人肯定會工作。
雖然這個解決方案很丑陋,但在大多數情況下都適用。
有幾個非常古老的方法(不是標准的,但在每個瀏覽器中工作): 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.