esta mañana había leido el
tema que presentas en css y la verdad que tuve dificultad para entenderlo pero creo que ya lo capté. evidentemente el problema es de css porque al final lo que javascript manipula es css. tu problema radica en que el menú no está fuera del flujo normal de contenidos. si un elemento es visible y se saca de flujo los elementos adyacentes: (a) ignora la posición que ocupa el elemento si es el caso de posiciones absoluta, o (b) los elementos se reacomodan alrededor si es el caso de elemento flotante. la solución que se me ocurre es un elemento que envuelva -wrapper- el menú. a ese wrapper le asignas posición relativa y al menú -el elemento contenedor de todos los items- posición absoluta anclado al border superior izquierda del wrapper -top:0; left:0;- o en la posición que desees. no lo he comprobado pero teóricamente me parece que debe funcionar. el resultado debe ser que al menú tener posición absoluta este no debe afectar el flujo del contenido adyacente cuando éste se muestre.