En Build Internet explican como crear animaciones en cajas con cualquier contenido usando jQuery, son muy impresionantes y atractivas, y pueden ser muy útiles cuando pensamos en una galería de imágenes que muestre cualquier leyenda como el título de la imagen o fotografía, una descripción corta con algunos enlaces etc.
La idea es muy simple, ponen una capa o div, que actúa como una ventana, en donde los otros dos elementos se ven a través de esta, uno es visible, en este caso la imagen, y la otra es la que tendrá la animación, que en este caso, es donde están los textos o leyenda y/o otra imagen.
Se puede usar ya sea una o todas las distintas animaciones en una misma galería, y si no vas a usar alguna, será necesario que borres la parte del código que correponde a esa animación; en todo el código vienen los comentarios donde se puede identificar cada uno.
Muy mono ¿verdad?, veamos como hacerlo...
¿Cómo usarlo?
1. Primero, necesitas jQuery que agregas antes de </head>, y si ya lo tienes, no lo agregas.
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js' type='text/javascript'/>
2. Agregar las funciones para cada animación, aquí ya vienen agregadas las 6 diferentes animaciones, y esto se pone después de jQuery:
<script type='text/javascript'>
//<![CDATA[
$(document).ready(function(){
//Deslizamiento Vertical
$('.boxgrid.slidedown').hover(function(){
$(".cover", this).stop().animate({top:'-260px'},{queue:false,duration:300});
}, function() {
$(".cover", this).stop().animate({top:'0px'},{queue:false,duration:300});
});
//Deslizamiento Horizontal
$('.boxgrid.slideright').hover(function(){
$(".cover", this).stop().animate({left:'325px'},{queue:false,duration:300});
}, function() {
$(".cover", this).stop().animate({left:'0px'},{queue:false,duration:300});
});
//Deslizamiento en diagonal
$('.boxgrid.thecombo').hover(function(){
$(".cover", this).stop().animate({top:'260px', left:'325px'},{queue:false,duration:300});
}, function() {
$(".cover", this).stop().animate({top:'0px', left:'0px'},{queue:false,duration:300});
});
//Deslizamiento parcial (muestra una parte del fondo)
$('.boxgrid.peek').hover(function(){
$(".cover", this).stop().animate({top:'90px'},{queue:false,duration:160});
}, function() {
$(".cover", this).stop().animate({top:'0px'},{queue:false,duration:160});
});
//Deslizamiento que muestra completa la leyenda
$('.boxgrid.captionfull').hover(function(){
$(".cover", this).stop().animate({top:'160px'},{queue:false,duration:160});
}, function() {
$(".cover", this).stop().animate({top:'260px'},{queue:false,duration:160});
});
//Deslizamiento que muestra parcialmente la leyenda
$('.boxgrid.caption').hover(function(){
$(".cover", this).stop().animate({top:'160px'},{queue:false,duration:160});
}, function() {
$(".cover", this).stop().animate({top:'220px'},{queue:false,duration:160});
});
});
//]]>
</script>
3. Luego, agregar el CSS, yendo al Diseñador de Plantillas en el campo de Añadir CSS:
.boxgrid{
width: 325px; /*ancho de la imagen*/
height: 260px; /*alto de la imagen*/
margin:5px;
float:left;
background:#161613;
border: solid 2px #8399AF;
overflow: hidden;
position: relative;
}
.boxgrid h3 {
padding: 0;
margin-left: 10px;
color: #fff;
}
.boxgrid img{
position: absolute;
top: 0;
left: 0;
border: 0;
}
.boxgrid p{
padding: 0 16px; /*usar solo si se pone en una sección*/
color:#afafaf;
font-weight: bold;
font-size: 12px;
}
.boxgrid a {
margin: 0;
padding: 0;
text-decoration: underline;
}
.boxcaption{
float: left;
position: absolute;
background: #000;
height: 100px;
width: 100%;
opacity: .8;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
top: 0;
left: 0;
}
.captionfull .boxcaption {
top: 260;
left: 0;
}
.caption .boxcaption {
top: 220;
left: 0;
}
Claro que puedes personalizar los marcos y fuentes, o hacer cualquier otro cambio en el CSS para adaptarlo.
4. Finalmente lo que falta es el HTML, con las imágenes, textos y enlaces que queremos mostrar, ya sea en una sección de la plantilla, por ejemplo debajo del header, o en una página estática.
Este es el HTML de los 6 ejemplos de la demostración y que puse en una página estática, nótese que agregue el atributo: padding a la etiqueta p, ya que si no tiene atributos cuando se agrega en el editor, desaparecerá y habrá problemas para que se apliquen los estilos. Si lo vas a poner ahí, será necesario quitar del CSS la linea que corresponde al padding, para dicha etiqueta y que puse de verde.
IMPORTANTE: Deberás tener en cuenta el ancho y alto de las imágenes, que vienen configuradas como 325 pixeles de ancho por 260 pixeles de alto, y cambiar todos los valores (en el CSS y el código del paso 2) si vas a usar otra medida.
Debido al éxito de esto, crearon un plugin al que llamaron "Mosaico", es ligero para crear estas animaciones, luego te diré como usarlo, aunque si ya sabes, puedes echar un vistazo y empezar a usarlo si te gusta.
Está explicados de forma general, y de ser necesario publicaré otro post explicando paso a paso como ponerlo en una sección, por ejemplo, debajo de la cabecera.
Siéntete libre de compartir tus ideas e inquietudes. Buen inicio de semana ;)
4. Finalmente lo que falta es el HTML, con las imágenes, textos y enlaces que queremos mostrar, ya sea en una sección de la plantilla, por ejemplo debajo del header, o en una página estática.
Este es el HTML de los 6 ejemplos de la demostración y que puse en una página estática, nótese que agregue el atributo: padding a la etiqueta p, ya que si no tiene atributos cuando se agrega en el editor, desaparecerá y habrá problemas para que se apliquen los estilos. Si lo vas a poner ahí, será necesario quitar del CSS la linea que corresponde al padding, para dicha etiqueta y que puse de verde.
<!--Deslizamiento que muestra completa la leyenda--><div class="boxgrid captionfull">En donde está el gatito "#" (almohadilla) es donde pones los enlaces respectivamente, y en todo lo demás, y que está de rojo, dice lo que necesitas poner.
<img alt="" src="URL DE LA IMAGEN" />
<div class="cover boxcaption">
<h3>Titulo de la imagen</h3>
<div style="padding-left: 10px;">
Texto aquí<br />
<a href="#" target="_BLANK">Texto Enlace</a></div>
</div>
</div>
<!--Deslizamiento que muestra parcialmente la leyenda--><div class="boxgrid caption">
<img alt="" src="URL DE LA IMAGEN" />
<div class="cover boxcaption">
<h3>Título</h3>
<div style="padding-left: 10px;">
Texto aquí<br />
<a href="#" target="_BLANK">Texto enlace</a></div>
</div>
<!--Deslizamiento Horizontal--><div class="boxgrid slideright">
<img alt="" class="cover" src="URL DE LA IMAGEN" />
<h3>Título</h3>
<div style="padding-left: 10px;">
Texto aquí<br />
<a href="#/" target="_BLANK">Texto enlace</a></div>
</div>
<!--Deslizamiento en Diagonal--><div class="boxgrid thecombo">
<img alt="" class="cover" src="URL de la imagen" />
<h3>Título</h3>
<div style="padding-left: 10px;">
Texto aquí<br />
<a href="#" target="_BLANK">Texto enlace</a></div>
</div>
<!--Deslizamiento Vertical--><div class="boxgrid slidedown">
<img alt="" class="cover" src="URL de la imagen" />
<h3>Título</h3>
<div style="padding-left: 10px;">
Arte, Música, Mundo<br />
<a href="#" target="_BLANK">Texto enlace</a></div>
</div>
<!--Deslizamiento parcial que muestra una parte del fondo--><div class="boxgrid peek">
<a href="#" target="_BLANK"><img src="URL DE LA IMAGEN PEQUEÑA" /></a><a href="#" target="_BLANK"><img alt="" class="cover" src="URL de la imagen visible" /></a>
</div>
IMPORTANTE: Deberás tener en cuenta el ancho y alto de las imágenes, que vienen configuradas como 325 pixeles de ancho por 260 pixeles de alto, y cambiar todos los valores (en el CSS y el código del paso 2) si vas a usar otra medida.
Debido al éxito de esto, crearon un plugin al que llamaron "Mosaico", es ligero para crear estas animaciones, luego te diré como usarlo, aunque si ya sabes, puedes echar un vistazo y empezar a usarlo si te gusta.
Está explicados de forma general, y de ser necesario publicaré otro post explicando paso a paso como ponerlo en una sección, por ejemplo, debajo de la cabecera.
Siéntete libre de compartir tus ideas e inquietudes. Buen inicio de semana ;)

Gracias por compartir estas cosas tan interesantes, me encantán. Aunque para mi en este momento no es práctico, me gusta mucho experimentar con un blog de pruebas que tengo. He ido aprendiendo bastante acerca de css. Un saludo.
ResponderEliminarTus últimos tres posts me han ganado totalmente :D me encanta ese efecto deslizante de las pestañas con la linea naranja y en cuanto lo de la galeria, es justo lo que buscaba, por fin podre ponerme manos a la obra en poner las entradas recientes en una galeria horizontal debajo del menu :)
ResponderEliminarDe nada Marcos, de nada, ya somos dos, y a jugar se ha dicho ;)
ResponderEliminarQue bueno inthe Riff, me emociona escuchar eso, y en cuanto hagas algo me dices para ir a ver que tal quedo ;)
Buen día!
Interesante, te enlazo aqui: http://www.informamemas.com/2011/11/cajas-con-animaciones-usando-jquery.html
ResponderEliminarUn saludo
Hola PC, ¿cómo estás?, gracias a mi también me encanta ;)
ResponderEliminarGracias por el enlace, y un saludo para ti también.
Hola de nuevo. ¡Pero cómo te he molestado en estos días! Gracias a ti ya estoy logrando el resultado que estoy buscando para mi blog.
ResponderEliminarAhora bien, tengo una consulta, no sé de algún contacto privado contigo y esta es una entrada que más o menos trata de lo que ocupo.
En el template agregué un slider que utiliza JQuery (lo puedes ver arriba de las entradas en http://vector-prueba-aesir.blogspot.com/), y aunque funcionan el slider y los vínculos, por alguna razón no se ven las imágenes :s
Intenté cambiar los url's de cada imagen y también subí los .js a mi propio servidor, pero nada :(
El truco lo saqué de este sitio: http://www.bloggertemp.com/2010/03/moving-jquery-image-sliderfeatured.html
¿Crees que me puedas ayudar?
¡Muchas gracias! :D
Hola Angela, eché un vistazo al blog y veo que estás agregando otra vez jQuery, en esta parte, lo que puse de negrita es jQuery; tal vez eso esté molestando:
ResponderEliminar<!-- JavaScript Slider -->
<script src='http://www.yourjavascript.com/57180121136/jquery-1.3.2.js' type='text/javascript'/>
Elimínalo, ya que ya tienes jQuery agregado desde la librería de Google.
También te recomiendo leer esto:
http://www.compartidisimo.com/2011/10/6-cosas-que-tienes-que-saber-cuando.html
Buen fin de semana
Casi lo olvido Angela, también pon todo el código antes de </head>.
ResponderEliminarQué bello Karlita! a jugar!
ResponderEliminarTe dejo besitos, buen domingo y mejor semana :)
Si que lo es Graciela, a jugar se ha dicho!!
ResponderEliminarMuchas gracias, besitos y que la pases super esta nueva semana!!
Hola, Karla. Muchísimas gracias por tu ayuda, pero si quito el código que me has dicho deja de funcionar el slider :s Entiendo lo que decías en la otra entrada (la que me recomendaste leer) pero si lo quito deja de pasar las imágenes (lo cual sí hace ahora).
ResponderEliminarLo que intenté fue pasar el código del slider (div id="myslides"... y todo lo demás) dentro del html del template. ¡Y allí sí se ven las imágenes enlazadas y funciona el slider a la perfección!
No sé por qué, pero si lo meto en un gadget de html desde la pestaña elementos de página no sirve. ¿Alguna idea de por qué y cómo puedo solucionarlo? Es que desde allí me queda más fácil hacerle correcciones al código. Además, desde allí puedo hacer que el gadget aparezca solo en la página principal del blog.
No sé si darme por vencida con este truco y buscar otro que se vea semejante. ¿Alguna sugerencia? Es que me gusta el slider de imágenes con vínculos (como este) y que además no requiere de mucho espacio en el blog. ¿Tienes algún consejo para salir con esto, por favor?
Mientras tanto, lo voy a dejar en el html, justo después de 'column-center-inner'
Gracias y disculpa las molestias.
Angela, ignoro los detalles de lo que pasa, lo que si te puedo decir con certeza, es que "no agregues dos veces jQuery" esto traerá problemas y muchos, es como si quisieras poner dos veces todo el CSS de tu plantilla, ¿te imaginas?, sería más lento.
ResponderEliminarYo no sé que recomendarte, es decir, si lo dejes o no, es decisión tuya, lo que si te puedo decir es que seas cautelosa y uses el sentido común a la hora de seguir un tutorial.
No es necesario que el HTML esté en un gadget para que puedas condicionarlo, lo puedes hacer desde el HTML de la plantilla, poniendo la condición en ese código, espero explicarme.
Buen día chica y suerte!
Ok, gracias. De momento lo voy a dejar porque si no me jodo en el slider, pero apenas me encuentre alguno que sí funciona sin poner dos veces el jquery quito el otro. Porque entiendo lo que quieres decir, es solo que el bendito slider no funciona si le quito el jquery del tutorial del que lo saqué y otros trucos no me sirven si quito el jquery actualizado :s
ResponderEliminarYa aplique el tutorial en mi blog y me viene una duda, ¿Como se hace para que el titulo solo aparezca en modo leyenda? que el blanco no queda muy bien en algunas imagenes, quitando eso, encantado de la vida, por fin encontre lo que estaba buscando :D
ResponderEliminarPD: Me gustaría que en el menu horizontal de mi blog, en vez de resaltarse en un rectangulo gris fuera se resaltara en una linea que lo subrayara como el widget de Lo+... que tienes, pero no encuentro modo de conseguir ese efecto :S ¿Me ayudarías?
Hola Angela, bueno, tu decides lo que haces en tu blog. Echa un vistazo en Vagabundia, Ciudad Blogger, Gema Blog, u Oloblogger, ellos tienes publicados tutoriales para slideshow's ;)
ResponderEliminarBuen día!
Hola inthe Riff,
ResponderEliminarDebería aparecer en la leyenda, eché un vistazo y veo algunas lineas que no deberían estar en el CSS, en la parte de la imagen de:
.boxgrid img{
 position: absolute;
...antes de position: absolute, quítalas, (no las puse completas para que no desaparezcan al publicar el comentario ya que son caracteres unicode)
Luego, abajo le faltan las unidades a los valores:
.captionfull .boxcaption {
top: 144;
left: 0;
}
.caption .boxcaption {
top: 100;
left: 0;
}
...debería ser:
top: 144px;
y top 100px;
Te recomiendo leer esto no te va a tomar mucho tiempo:
http://www.compartidisimo.com/2011/10/7-errores-comunes-en-el-css-al.html
Si quieres cambiar el color de fondo en el hover del menú, y el enlace seleccionado, tienes que buscar esto:
.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover{
y cambiar el:
background-color: #CCC;
por:
background: url(imagen.gif) repeat;
;) Suerte!
Muchisimas gracias por todo creo que ya tengo corregidos todos los problemas que me has presentado y he tomado nota del tutorial que me has pasado aunque siguen presentes los titulos en blanco cuando estan las imagenes del widget :S
ResponderEliminarEn cuanto a lo del hover, una preocupación menos :D grazas!!!
De nada.
ResponderEliminarBueno, debe haber por ahí algo que lo molesta, empecemos por los errores, mira aquí hay un error:
.gsc-branding-text, .gsc-branding-img-noclear {
display:none;
}
}
...quita la llave de cierre que está de más.
Haremos algo, en:
.boxgrid img{
...dentro de las propiedades, pon:
z-index: 10;
Me cuentas...
Pues te cuento que eres genial!!! muchisimas gracias por aguantarme y hacer todo este trabajo :)
ResponderEliminarGracias!!!
jaja, es que si no te aguanto yo, quien mas te va a aguantar... jaja...ya, hablando en serio, no es nada, ya había visto que lo arreglaste, así que me da gusto por eso.
ResponderEliminar;) Hasta luego!
Hola Karla que onda? te comento que me gustaria poner esto en mi blog pero en la pagina principal, osea que las entradas aparezcan "resumidas" en estas cajas, es posible hacerlo?? Igual no pienso tener muchas entradas (si es que la cantidad afecta en algo).
ResponderEliminarSi se puede hacer en donde tendria que ponerlo, eso de ponerlo despues del header no entendi, lo meti en el html al finalizar el header y no me salio :/
Qué onda Lucas!?. Es posible hacerlo aunque no te puedo dar el código o procedimiento para lograrlo en un dos por tres, pues no lo he hecho y primero me tendría que poner a trabajar en ello. Dame tiempo y lo hago y publico una entrada al respecto ok? Si es que no hay prisa :)
EliminarGracias Karla me seria super util!! :D
EliminarPuedo esperar no hay problema.. muchas gracias