Решение jQuery (предполагается, что все элементы расположены как-то)
$('#foo').scrollTop($('#bar').position().top);
EDIT
Примечание: Убедитесь, что вы установили padding-top
на bar
, а не margin-top
, если хотите, чтобы после прокрутки оставалось место между foo
и bar
.
РЕДАКТИРОВАТЬ Решение DOM (работает независимо от того, были ли элементы расположены или нет, см. Ответ @cobbals для эквивалента jQuery):
document.getElementById('foo').scrollTop += document.getElementById('bar').offsetTop - document.getElementById('foo').offsetTop