Crear un sencillo slider (deslizador) con jQuery

Algunos me habéis preguntado sobre el slider que hay en la página de Trabajos de Emenia. Se trata de un sencillo slider o deslizador de contenidos creado con jQuery. Vamos a crear uno más sencillo como ejemplo. En realidad la mecánica es la misma, sólo que en este ejemplo dentro de cada contenido a deslizar vamos a usar sólo texto, pero podemos poner todo tipo de contenidos.

Ver Demo

Vamos a poner un ejemplo para crearlo de cero. Partimos de un menú creado en HTML:

Como veis es un menú simple, con tres enlaces. Los enlaces no llevan a ninguna página porque todo el contenido está en la misma página y los enlaces los vamos a usar sólo para ir mostrando la parte que queremos enseñar del contenido.

Ahora, a continuación del menú escribimos el contenido. Dentro de cada “div” podemos meter lo que queramos: texto, imágenes, video o una mezcla de todo, claro. Para simplificar voy a meter sólo texto.

Y damos unos pequeños estilos para poner el menú a la izquierda de todo el contenido:

Como veis simplemente he puesto el menú a la izquierda y los contenidos a su derecha. He añadido una línea más, en la que al enlace con la clase “aqui” se le asigna el color negro. Lo que pretendo es que cuando hagamos click en una opción y se vea su contenido, el enlace de esa opción en el menú esté resaltado. La clase la vamos a añadir y quitar con jQuery.

Bueno, y ahora vemos a ver las líneas de jQuery que van a moverlo todo:

En la línea 3 ocultamos los contenidos de las Opciones 2 y 3, con lo cual sólo se verá el contenido de la Opción 1. Queremos que el contenido de la Opción 2 sólo se vea al hacer click sobre el enlace del menú que le corresponde. Y lo mismo para la Opción 3.

En la línea 4 añadimos la clase “aqui” al enlace de la Opción 1, que es el primero que va a estar a la vista.

En la linea 6 decimos que si se hace click sobre el enlace del menú que tiene la clase “opcion1″ se haga lo siguiente:
- Se quite la clase “aqui” a todos los enlaces.
- Se añada la clase “aqui” al enlace sobre el que se ha hecho click.
- Se muestra el contenido con la clase “opcion1″.
- Se oculta el contenido de las otras dos clases.

Lo mismo se repite para el resto de los bloques de contenido, cada uno con su clase.

¡Y ahí lo tenéis! Hay que tener en cuenta las ventajas y los inconvenientes de hacer algo de este tipo:

Ventajas:
- No hace falta recargar la página para ver cada parte, por lo que se muestran los contenidos de manera mucho más rápida y efectista.

Desventajas:
- Desde el punto de vista SEO esta opción puede que sea peor ya que no estamos creando diferentes páginas a indexar cada una con el título de cada contenido, su URL propia, sus meta-etiquetas, etc..
- Si a alguien le interesa sólo uno de los contenidos no puede hacer un enlace directo al mismo, o guardar sólo ese contenido en favoritos.
- Si el navegador del usuario tiene desactivado Javascript se verán todos los contenidos, pero el menú pierde su razón de ser.

Por ello es recomendable usar este método sólo cuando la ocasión lo propicie. ¿Qué opináis?

14 comentarios en “Crear un sencillo slider (deslizador) con jQuery

  1. Es realmente estupendo vuestro blog. Estoy aprendiendo mucho gracias a esa sencillez que tan bien utilizais. Enhorabuena y mucho trabajo, que os lo mereceis.

    Gracias

  2. Trate de hacerlo y no funcionó, programar no es precisamente lo mio, aunque según yo lo puse de forma adecuada, y no me funciona, te dejo el código ojalá me puedas ayudar pues este script me sería muy útil… de ante mano gracias:

  3. Gracias amigo por el ejemplo, lo probare a ver que tal.
    Una pregunta, para que usastes el:
    e.preventDefault(); ?
    y por que cada funcion retorna falso?.

  4. Hola, excelente trabajo y muy bien explicado. Gracias por pensar en las personas que estamos iniciando en éste desarrollo. Tengo una duda ¿Qué tendría qué hacer para que en lugar de un “click” todo pasara automáticamente?
    Saludos y Felicidades por el aporte!

  5. Saludos.
    De antemano muchas gracias, excelente trabajo.
    Este código la he utilizado en un pequeño aside para mostrar información de eventos.

    Una inquietud: ¿Cómo puedo poner el código jQuery en un archivo .js y vincularlo al html?
    Te cuento. He creado un archivo sliderEventos.js y copié todo el código jQuery sin las etiquetas script. Luego en el html lo vinculo con la siguiente linea:

    Pero esto no me funciona. En qué estaré fallando?.

    Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">