Hace algún tiempo que no publico de jQuery, pues bien, hagamos un ejemplo práctico y sencillo. Seguro que muchos han visto como tengo la sidebar del blog para los archivos y enlaces de interes, incluso las entradas de la página principal, eso no es nada más que un efecto toggle, pero ¿que pasa cuando queremos aplicar esto a un div entero?, no es muy estético ni práctico usar "toggle" para todo, es entonces cuando hacemos un script propio, para ello lo primero que debemos hacer es crear el HTML:
- ContenidoPrincipal: es el div que contiene todo lo que estamos controlando, para no dejar nada fuera de su lugar.
- DivOculto: es un div temporal que utilizamos para comprobar el estado en que se encuentra el efecto, si esta oculto entonces el div principal esta abierto, de lo contrario esta cerrado.
- ElSlide: es quien va a contener todo lo que estará dentro del efecto, básicamente sería nuestro contenedor secundario.
- ContenidoOculto: como dice el mismo id, es el contenido que estará dentro del slide, cuando ocurra el efecto lo que este dentro será lo que se muestre.
- ElTextoDelEnlace: dentro de el se encuentra el texto, imágenes o lo que queramos mostrar para que el usuario haga el click (utilice texto a modo de ejemplo, pero puedes usar imágenes o lo que gustes).
- ElEnlace: este es el que hace la magia, es el que dispara el evento para que se haga el resto, como bien dije, puede que prefieras usar una imagen o cualquier otra cosa.
Hasta aquí todo bien, ahora vamos con el CSS:
NOTA: a modo de recomendación, esto por ser un ejemplo utilizo puros ID para relacionar los eventos del script, pero sería mas conveniente utilizar clases, reemplazando todo esto en el CSS y el Script.
Explicando cada cosa:El contenido aqui
- ContenidoPrincipal: es el div que contiene todo lo que estamos controlando, para no dejar nada fuera de su lugar.
- DivOculto: es un div temporal que utilizamos para comprobar el estado en que se encuentra el efecto, si esta oculto entonces el div principal esta abierto, de lo contrario esta cerrado.
- ElSlide: es quien va a contener todo lo que estará dentro del efecto, básicamente sería nuestro contenedor secundario.
- ContenidoOculto: como dice el mismo id, es el contenido que estará dentro del slide, cuando ocurra el efecto lo que este dentro será lo que se muestre.
- ElTextoDelEnlace: dentro de el se encuentra el texto, imágenes o lo que queramos mostrar para que el usuario haga el click (utilice texto a modo de ejemplo, pero puedes usar imágenes o lo que gustes).
- ElEnlace: este es el que hace la magia, es el que dispara el evento para que se haga el resto, como bien dije, puede que prefieras usar una imagen o cualquier otra cosa.
Hasta aquí todo bien, ahora vamos con el CSS:
body { margin: 0; font-size:16px; color: #000000; font-family:Arial, Helvetica, sans-serif; } #ContenedorPrincipal { margin: 0 auto; width: 300px; } #ElSlide { position: absolute; background-image:url(slider.png); background-repeat:no-repeat; background-position: bottom; width: 300px; height: 159px; margin-top: -141px; } #ContenidoOculto { margin: 50px 0 0 50px; position: absolute; text-align:center; background-color:#FFFFCC; color:#333333; font-weight:bold; padding: 10px; } #ElTextoDelEnlace { position:absolute; margin: 143px 0 0 120px; font-size:12px; font-weight:bold; }Y ahora el script:
$(document).ready(function() { $("#ElEnlace").click( function() { if ($("#DivOculto").is(":hidden")) { $("#ElSlide").animate({marginTop: "-141px"}, 500 ); $("#ElEnlace").html('expandir'); $("#DivOculto").show(); } else { $("#ElSlide").animate({marginTop: "0px"}, 500 ); $("#ElEnlace").html('contraer'); $("#DivOculto").hide(); } }); });Básicamente lo importante es la condición [ if ($("#DivOculto").is(":hidden")) ]... Ejemplo
NOTA: a modo de recomendación, esto por ser un ejemplo utilizo puros ID para relacionar los eventos del script, pero sería mas conveniente utilizar clases, reemplazando todo esto en el CSS y el Script.
Recibe notificaciones por correo
Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.
Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión