La dificultad con el desplazamiento es que es posible que no solo necesite desplazarse por la página para mostrar un div, sino que también puede necesitar desplazarse dentro de los divs desplazables en cualquier número de niveles.
La propiedad scrollTop está disponible en cualquier elemento DOM, incluido el cuerpo del documento. Al configurarlo, puede controlar qué tan abajo se desplaza algo. También puede usar las propiedades clientHeight y scrollHeight para ver cuánto desplazamiento se necesita (el desplazamiento es posible cuando clientHeight (ventana gráfica) es menor que scrollHeight (la altura del contenido).
También puede usar la propiedad offsetTop para averiguar en qué parte del contenedor se encuentra un elemento.
Para construir una rutina de "desplazamiento a la vista" de propósito general desde cero, necesitaría comenzar en el nodo que desea exponer, asegurarse de que esté en la parte visible de su padre, luego repetir lo mismo para el padre, etc., todo el camino hasta llegar a la cima.
Un paso de esto se vería así (código no probado, sin 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);
}
}