Crear un sitio de una página con desplazamiento usando Foundation

Tutorial para crear un sitio web de una página (onepage website) con desplazamiento local (smooth scroll) usando el marco de trabajo Foundation de Zurb.



En ésta ocasión me voy a aventurar a crear un pequeño tutorial para crear un sitio web de una pagina, que ahora están muy de moda, usando como base Foundation. 
Foundation es un muy buen marco de trabajo (framework en inglés) para desarrollar sitios de forma rápida y sobretodo que sean ajustables a la pantalla (responsive en inglés).
Es así que empecemos con este tutorial; para comenzar necesitaremos descargar:
  1. Foundation Zurb - http://foundation.zurb.com/  
  2. Jquery Smooth Scroll Plugin - https://github.com/kswedberg/jquery-smooth-scroll

HTML

Comenzaré por crear una página sencilla la cual estará formada por una galería de fotos y un mensaje que será la sección de bienvenida del sitio, para esto usaremos el componente javascript que incluye Foundation llamado Orbit. En la sección siguiente a la bienvenida, irá una barra de navegación que servirá para desplazarse y el resto de la pagina serán las secciones propias del sitio web; en términos generales debe quedar algo parecido a lo siguiente:



CSS

Para el ejemplo se necesita que las secciones de página tengan una altura mínima y además un poco de espacio entre sección y sección, para esto se necesita agregar en la sección de "head" unas cuantas lineas de estilo que darán un poco de forma a la página web:

 <style type="text/css">
 .page-section {padding-top:20px;min-height:650px;border-top:solid 2px gray}
 .page-section-first {padding-top:60px;}
 .page-divider {min-height:100px;}
        </style>

Ahora se debe aplicar la clase de estilo ".page-section" a las secciones en nuestro código de html:


MAGELLAN

Lo siguiente, es configurar el componente de javascript "Magellan" que viene incluido en Foundation. Este componente permite desplazar el contenido de la página y al mismo tiempo se vuelve una barra fija en la parte superior del navegador, es decir es un famoso menú pegajoso (sticky menu en Inglés):

Se ha agregando una clase de estilo "magellan-link" a todos los enlaces de el menú de navegación, esta clase se usará con el javascript smooth scroll.

Ya en este punto se deben crear los destinos de los enlaces de el menú de navegación usando de "data-magellan-destination" en los encabezados (en las etiquetas <h2>) de cada seccion:

<h2 id="section-1" class="page-section-first" data-magellan-destination="section-1">Empresa</h2>
.
.
.
<h2 id="section-2" data-magellan-destination="section-2">Servicios</h2>
.
.
.
<h2 id="section-3" data-magellan-destination="section-3">Productos</h2>
.
.
.
<h2 id="section-4" data-magellan-destination="section-4">Contacto</h2>

En el primer encabezado existe una clase extra, que lo único que hace es agregar un poco de margen superior a la primera sección.

SMOOTH SCROLL

El turno de usar el agregado de Jquery: smooth-scroll, el cual permitirá que el efecto de desplazamiento por la página tenga una mejor animación:

<script src="js/jquery.smooth-scroll.min.js"></script>
<script>
$("a.magellan-link").smoothScroll({offset: -60, speed:1000});
</script>

El numero -60 para el valor offset esta basado en el alto de 65 pixeles que tiene la barra de
El código anterior debe ir al final, antes de cerrar la etiqueta de body. Con esto ultimo el sitio web de una pagina con desplazamiento quedará funcionando.

EXTRA

En muchos sitios que usan esta forma de navegación se presenta un botón al inicio de la pagina, por lo cual en la sección de bienvenida se puede agregar un botón de la siguiente forma:

<div class="text-center">
 <ul class="button-group">
   <li data-magellan-arrival="section-1"><a class="magellan-link button" href="#section-1">ir a sitio</a></li>
 </ul>
</div>

Otra modificación es agregar un enlace al inicio de la página mediante el menú de navegación. Primero habrá que poner un ancla al inicio de la misma despues de la etiqueta body:

<a name="home" id="home" data-magellan-destination="home"></a>

Y finalmente se modifica la barra de menu:


<h1><a data-magellan-arrival="home" class="magellan-link" href="#home">Mi Sitio</a></h1>

Listo!

El código fuente puede ser descargado en https://github.com/vgarcias/onepage-ss-foundation
Y un demo puede ser visualizado en http://vgarcias.github.io/onepage-ss-foundation/

Comentarios

Edgardo dijo…
Hola, muy bueno tu proyecto, estoy probando y quisiera aplicarlo con Foundation 5.
Pero necesito compatibilidad con IE8, +10% de mis visitas lo usan. Mi menú de servicios tiene 2 sub -ítems y el de productos 5. Los desplegables, no se ven en IE8, incluso quise usar polyfills y rem-units, mejora totalmente el aspecto, pero el menú sigue sin funcionar.
¿Tendrás alguna solución para hacerlo funcionar?, muchas Gracias.
Excelente tutorial!, apenas estoy metiendome en Fundation y este ejemplo me aclaro muchas dudas!, gracias por compartir este conocimiento!

Entradas más populares de este blog

Yahoo! UI (yui) TabView como menu horizontal.

Truco: usar Firefox en el portal IDSE del IMSS

Visual Web Express Edition con MS Access Membership