2012-06-06 2 views
3

Скажите, что пользователь просматривает определенную часть страницы, когда за кулисами запускается функция автоматического обновления, а прямо над или под экраном пользователя добавляется еще один контент.Как прокрутить список до нового элемента dom?

У меня есть идентификатор только что добавленного контента.

Как я могу плавно прокрутить пользователя к недавно добавленному div, используя jquery или простой javascript? Должен работать во всех основных браузерах.

ответ

6

Вот что я использую для JQuery

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

Это работает, есть также способ прокрутки вниз/вверх 100 точек или так от того, что в настоящее время ищет пользователя по адресу? –

+1

+/- 100 в '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

(я не спускал вниз) Я думаю, что это было занижено, потому что вопрос состоял в том, как оживить действие («плавно прокрутить»), и это не делает этого. –

+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

отлично ... обновление ... –

Смежные вопросы