2012-06-06 37 views
3

假設用戶正在查看頁面的特定部分,當後臺運行自動更新功能時,正好在用戶屏幕的上方或下方添加更多內容。如何滾動到新添加的dom元素?

我有新添加內容的div的id。

如何使用jquery或純javascript將用戶平滑滾動到新添加的div?必須在所有主流瀏覽器中運行。

回答

6

這是我使用jQuery的

$('html,body').animate({scrollTop: jQuery("#ID").offset().top},'slow'); 
+0

這工作,在那裏還可以向下滾動/多達100像素左右,無論從任何用戶目前正在尋求一種方式? –

+1

+/- 100 to'jQuery(「#ID」)。offset()。top' ... –

+0

$('html,body')。animate({scrollTop:jQuery(「#ID」)。offset() .top - 100},'slow'); – romo

-1

使用錨:

<a name="newelement">.... new element stuff here ...</a> 

然後更改頁面的URL在新的元素指向:

http://example.com/yourpage.html#newelement 
+0

爲什麼會低調回答這個問題?這裏有什麼問題? –

+1

(我沒有downvote)我認爲這是downvoted,因爲問題是如何動畫的動作(「順利滾動」),這並不這樣做。 –

+0

沒有biggie。我將問題解釋爲「所有瀏覽器」,而不是「所有主要瀏覽器」 - 所有瀏覽器都意味着使用老派技術。 –

1

我認爲,這應該工作...與jQuery。

$(window).scroll($('#newly-added-elem').offset().top); 

UPDATE:平滑滾動可以實現這一目標:

$('body').animate({scrollTop: $('#newly-added-elem').offset().top},'slow'); 
+0

你可以添加動畫作爲romo做的,但這不是你所要求的... –

+0

「順利滾動」的聲音,就像他想動畫給我... –

+0

罰款......更新... –