2012-03-27 27 views
2

我正在建立一個頁面,當發生什麼事情時,必須將動畫滾動到某些位置。決定要滾動,document.documentElement或document.body

我申請jQuery.animatedocument.documentElement,它似乎在Firefox和IE瀏覽器的一些版本中正常工作,而在Chrome和IE的其他版本有適用於document.body工作。

我是個白癡嗎?我錯過了什麼?如果我不是,有什麼適當的方法來檢測使用哪一個?

回答

1

你是不是白癡,它一直是棘手的,看評論here例如:)

至於我記得,現在 $('html, body').animate({scrollTop: '-=100'}) 作品在所有主要瀏覽器。

0

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

否則就通常使用$(window).animate();

+0

不錯的插件,我一定會用它。但它仍然需要運行一個jQuery對象,這是這裏的主要問題。我會給'$(window)'一個鏡頭。 – 2012-03-27 16:14:15

+0

那麼'$(window)'不起作用。 – 2012-03-27 16:20:11

0

看來,安全的方式做到這一點是運行動畫上document.documentElementdocument.bodywindow一次。一個人肯定會工作。

即使這個解決方案是醜陋的,它在大多數情況下工作。

0

有幾種非常古老的方法(不是標準的,但在每個瀏覽器中工作):window.scroll (),window.scrollTo(),window.scrollBy()和其他。見例如此MDN頁文檔:https://developer.mozilla.org/en-US/docs/DOM/Window.scroll

注意,儘管在Firefox或Chrome這些方法只是改變scrollTop的/ scrollLeft和Opera和IE這些方法不會引起即時滾動(滾動延遲到JavaScript事件處理程序返回), 實際立即滾動窗口(這不是很好)。

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