A dificuldade com a rolagem é que você pode não apenas precisar rolar a página para mostrar um div, mas também pode precisar rolar dentro de divs roláveis em qualquer número de níveis.
A propriedade scrollTop está disponível em qualquer elemento DOM, incluindo o corpo do documento. Ao defini-lo, você pode controlar até que ponto algo é rolado para baixo. Você também pode usar as propriedades clientHeight e scrollHeight para ver quanta rolagem é necessária (a rolagem é possível quando clientHeight (janela de visualização) é menor que scrollHeight (a altura do conteúdo).
Você também pode usar a propriedade offsetTop para descobrir onde um elemento está localizado no contêiner.
Para construir uma rotina verdadeiramente geral de "rolar para ver" do zero, você precisa começar no nó que deseja expor, certifique-se de que esteja na parte visível de seu pai e, em seguida, repita o mesmo para o pai, etc, todos o caminho até chegar ao topo.
Uma etapa seria mais ou menos assim (código não testado, sem verificar casos extremos):
function scrollIntoView(node) {
var parent = node.parent;
var parentCHeight = parent.clientHeight;
var parentSHeight = parent.scrollHeight;
if (parentSHeight > parentCHeight) {
var nodeHeight = node.clientHeight;
var nodeOffset = node.offsetTop;
var scrollOffset = nodeOffset + (nodeHeight / 2) - (parentCHeight / 2);
parent.scrollTop = scrollOffset;
}
if (parent.parent) {
scrollIntoView(parent);
}
}