Hola darkram,
Creo que ayudarte a decirte algo en concreto es bastante dificil, ya que nos comentas aspectos muy generales y en los que entra más de un lenguaje de programación.
No se que nivel de programación tendrás pero por ejemplo, los eventos de ratón cuando haces click en una capa (div) los tendrás que controlar con javascript, hoy en día el framework más utilizado para estas cosas es jQuery aunque también va a gustos todo.
Aquí tienes unos enlaces del proyecto de jQuery.
Página oficial del proyecto:
http://jquery.com/
Documentación sobre eventos de ratón:
http://api.jquery.com/category/events/mouse-events/
Luego una vez controlado los eventos de ratón, puedes decidir si tener ya cargado el contenido en la página o cargarlo a través de una petición get o post.
Si decides tener el contenido ya cargado también entraría el tema de css, ya que puedes mostrar u ocultar capas con las diferentes opciones que te da este lenguaje como "visibility" o "display"
Opción visibility en css:
http://www.w3schools.com/cssref/pr_class_visibility.asp
Opción display en css:
http://www.w3schools.com/cssref/pr_class_display.asp
Si decides cargar el contenido a través de peticiones lo puedes hacer con el mismo jQuery que te he comentado antes.
Función get en jQuery:
http://api.jquery.com/jQuery.get/
Función post en jQuery:
http://api.jquery.com/jQuery.post/
Espero haber encaminado tus dudas y que puedas resolver tu problema.
Un saludo!