Я хочу прокручивать окно вниз, когда разворачиваю элементы на своей странице.
Эффект, которого я пытаюсь достичь, похож на комментарии Stack Overflow. Если он выходит за пределы страницы, он прокручивается вниз, чтобы уместить все комментарии в окне.
Как лучше всего это сделать?
Обновлено: я использую JQuery.
Тем, у кого есть Safari, может понравиться это: gesteves.com/experiments/starwars.html



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если у вас есть преимущество использования Prototype, вы можете использовать $(element).scrollTo().
В противном случае общая идея состоит в том, чтобы вычислить совокупное смещение элемента, а затем соответственно установить window.scrollTop (и window.scrollLeft).
Вы можете сделать это красиво с помощью Священный (построенного поверх Прототип):
new Effect.ScrollTo('someDiv',{...some parameters...})
Он дает вам более тонкий контроль, чем один только Prototype (задержка перед запуском, продолжительность и события обратного вызова (например, afterFinish), которые позволяют запускать другие эффекты или все, что вы выберете. Вы можете заставить его прокручиваться плавно и красиво, чтобы страница не внезапно Прыжок.
Этот плагин jQuery мне понравился: http://demos.flesler.com/jquery/scrollTo/
Если вы знаете, какой будет следующий элемент в источнике, вы можете просто перейти к этому элементу (location.href = "# ..."). Это будет использовать собственную «прокрутку» браузера и не использовать никаких библиотек.
Вы можете использовать этот код, который хорош, но не идеален. На основе предложения blonkm
function scrollTo( Selector ){
$(Selector).before("<a name='scroll' id='scroll'></a>");
document.location.hash = 'scroll';
$('scroll').remove();
}
Это должно сработать. Требуется jQuery, но вы уже сказали, что используете его.
Вы используете какую-либо конкретную библиотеку javascript?