<?='Hello, world!'?>
Novedades, ayudas, consejos y todo tipo de trucos para tu blog.
Aficiones: cine, deportes, esquí, familia, Girona, hijos, informática, internet, mellizos, meristation, montaña, música
Bueno, pues después de lidiar con algunos problemas de compatibilidad de varios tipos, ya tenemos aquí la posibilidad de generar galerías de imágenes cíclicas. Este método es compatible con todos los navegadores más habituales. Para aquellos que tengais curiosidad, esto se implementa con el plugin cycle de jQuery, que es la librería básica de javascript que utilizamos en este entorno.
Este sistema de galerías nos permite rotar una serie de imágenes, o de cualquier clase de contenido. Todo depende de algunos detalles que tenemos que introducir en el HTML de nuestros textos. Para poder escribir los códigos que activan las galerías es necesario desactivar el editor de texto enriquecido (WYSIWYG) y utilizar una sintaxis particular que ahora os explico.
Para generar galerías de imágenes utilizaremos el siguiente formato de código:
<div class="cycle" cycle="opciones de la galería">
<img src="..." width="x" height="x" title="" />
<img src="..." width="x" height="x" title="" />
<img src="..." width="x" height="x" title="" />
<img src="..." width="x" height="x" title="" />
</div>
Para generar rotaciones de cualquier otro tipo de contenido utilizaremos el siguiente formato de código:
<div class="cycle" cycle="opciones de la galería">
<div>...aquí nuestro contenido...</div>
<div>...aquí nuestro contenido...</div>
<div>...aquí nuestro contenido...</div>
<div>...aquí nuestro contenido...</div>
</div>
Es decir, tenemos un div normal y corriente al cual le añadimos un par de atributos. El primero, class="cycle", es el que activa este tipo de galerías, y el segundo, cycle="opciones de la galería", es el que nos permite especificar sus parámetros de configuración, algunos de los cuales son obligatorios y otros opcionales.
Si nos fijamos, la estructura es muy parecida en los dos casos. En el primero, el div con el atributo class="cycle" contiene imágenes, y en el segundo caso contiene otros elementos div. La idea es que con este método de galerías se va a rotar cíclicamente todo elemento contenido en el div principal.
La ventaja con el primer método es que es más sencillo, y suficiente si lo que queremos es mostrar algunas imágenes. El segundo método es más complicado, como veremos más adelante.
Una variante sobre el primer ejemplo (sin div) podría ser como lo siguiente, donde los elementos de la galería no son div, ni img, sino a, que desde el punto de vista de la estructura del HTML viene a ser similar al primer ejemplo, pero donde las imágenes son a su vez un enlace.
<div class="cycle" cycle="opciones de la galería">
<a href="..."><img src="..." ... /></a>
<a href="..."><img src="..." ... /></a>
<a href="..."><img src="..." ... /></a>
<a href="..."><img src="..." ... /></a>
</div>
Veamos, de momento, un ejemplo con cada uno:
El código utilizado en el primer ejemplo es:
<div align="center">
<div class="cycle" cycle="fx=scrollLeft;width=250;height=185">
<img src="miniaura1.jpg" width="250" height="185" alt="" />
<img src="miniaura2.jpg" width="250" height="185" alt="" />
<img src="miniaura3.jpg" width="250" height="185" alt="" />
<img src="miniaura4.jpg" width="250" height="185" alt="" />
</div>
</div>
El primer div nos permite centrar la galería, lo cual es totalmente opcional. En el segundo es donde especificamos class="cycle" y el resto de parámetros con el atributo cycle="...". Luego ya repasaremos todas las opciones que se pueden utilizar, pero aquí se ven los más importantes. fx nos permite especificar qué tipo de efectos especiales queremos que se apliquen para las transiciones de las imágenes que componen nuestra galería de ejemplo. Las opciones width y height son muy importantes ya que definen el espacio que ocupará la galería, y conviene que se calcule en base al tamaño de las imágenes. En este caso, definimos una galería de 250x185 que va a contener imágenes de ese mismo tamaño, pero esto podría no ser así, dependerá de lo que necesitemos en cada momento.
El código utilizado en el segundo ejemplo es:
<div align="center">
<div class="cycle" cycle="fx=scrollRight;width=270;height=220">
<div class="box10" align="center">
<img src="miniatura1.jpg" width="250" height="185" alt="" />
<br />
(<a href="imagen1.jpg">Pulsa aquí para ampliar la imagen</a>)
</div>
<div class="box10" align="center">
<img src="miniatura2.jpg" width="250" height="185" alt="" />
<br />
(<a href="imagen2.jpg">Pulsa aquí para ampliar la imagen</a>)
</div>
<div class="box10" align="center">
<img src="miniatura3.jpg" width="250" height="185" alt="" />
<br />
(<a href="imagen3.jpg">Pulsa aquí para ampliar la imagen</a>)
</div>
<div class="box10" align="center">
<img src="miniatura4.jpg" width="250" height="185" alt="" />
<br />
(<a href="imagen4.jpg">Pulsa aquí para ampliar la imagen</a>)
</div>
</div>
</div>
Si observamos en el código de este segundo ejemplo, los dos primeros div son prácticamente iguales al primero. Pero fijémosos en los parámetros width y height. Aquí tienen valores algo mayores que nuestras imágenes. Esto es así porque los elementos que componen esta galería contienen algo más que una imagen (ver la parte gris del código, que va dentro de otros div).
En estos div que conforman los elementos de nuestra galería podemos utilizar las clases CSS box10 (como es el caso del ejemplo), o box20, que es igual, pero que genera algo más de margen. Por lo demás, el contenido de estos div puede ser cualquier cosa. Lo que tenemos que tener en cuenta es el tamaño que van a tener para poder definir correctamente los parámetros width y height del div que tiene la clase class="cycle". En caso contrario, si el espacio que calculamos para la galería es menor del necesario, ésta se mostrará recortada, y si es mayor, entonces vamos a generar espacio en blanco sin necesidad alguna.
Bien, hasta aquí la estructura del HTML que necesitamos montar para nuestras galerías. Ahora centrémonos en la sintaxis del atributo cycle="...". Las opciones se separan con punto y coma unas de las otras, y tienen el formato opción=valor.
Las opciones disponibles son:
Para finalizar, aquí tenéis una muestra de todos los efectos especiales que se pueden utilizar con el parámetro fx:
Novedades, ayudas, consejos y todo tipo de trucos para tu blog.
Aficiones: cine, deportes, esquí, familia, Girona, hijos, informática, internet, mellizos, meristation, montaña, música
Como ya sabréis la mayoría de vosotros, una buena parte del éxito de un sitio web pasa por aplicar una serie de técnicas, estándares y procedimientos que nos permitan optimizar los contenidos para que los motores de búsqueda puedan indexarnos mejor. Lo que quizá no conozcáis es que los principales motores de búsqueda ofrecen, gratuitamente, algunas herramientas que nos pueden ayudar a realizar esta tarea, a la par que aprendemos nuevos conceptos que nos van a permitir mejorar nuestros propios contenidos.
¿Cuál de estos servicios os ha parecido más útil?

21 Comentarios:
Creo que lo he
15 de Junio de 2008 • 23:30 — ShaiyiaCreo que lo he entendido...todo sea que me ponga y en vez salirme lo que tengo pensado, me salga una bombas o algo así X-D
Tremendo markus, estoy segura que la gente le va a sacar muuuucho partido.
:)
15 de Junio de 2008 • 23:52 — ArckanoidEsta entrada ya está muy cargada en ejemplos.
15 de Junio de 2008 • 23:50 — markusExcelente trabajo :). Ahora
15 de Junio de 2008 • 23:53 — FRdeTorresBuena implementación,
15 de Junio de 2008 • 23:59 — The_unforgiven_tooBuena implementación, aunque si es cierto que carga mucho la página, noto como va más lento.
Un saludo.
Jooooooooo, que pasaadaaaaa!!!
16 de Junio de 2008 • 01:20 — RikkuInTheMiddleDios, como te lo curras!!!
Si es que nos estás malcriando... ¡Lo de la galería del concurso de blogs ha quedado de muerte!
MmMm Interesante! :p
16 de Junio de 2008 • 03:35 — KoNiKo@The_unforgiven_too, KoNiKo:
16 de Junio de 2008 • 06:45 — markus@The_unforgiven_too: Sí que se nota cargada, pero es que en esta entrada, con la cantidad de ejemplos que tiene... aparte que tarda en cargar la página, va todo más lento debido a que cada galería está ejecutando temporizadores para controlar los efectos especiales de cada ejemplo. Digamos que no se debería abusar, y poner un máximo de 2 o 3 galerías cycle por página.
@KoNiKo: He utilizado el método explicado en el segundo ejemplo de esta entrada. Los elementos de la galería los he puesto a mano. Lo único que tiene de especial, es que genero un código fx diferente cada vez que se recarga la página, lo cual me sirve de ejemplo ahora que ponemos este tipo de galerías en marcha, aunque hay algunos efectos con los que no se ve muy bien. Esto lo tendréis que probar vosotros, a ver qué efecto os va mejor en cada caso.
@RikkuInTheMiddle: jeje
Por cierto, esto lo podréis utilizar tanto en textos de entradas de blog, como en bloques de texto libre, lo cual os puede servir para ahorrar algo de espacio. Por ejemplo, si dentro de las opciones que se especifican dentro de cycle="..." se utiliza timeout=10000;click=1 entonces la galería está casi quieta (cambia de elemento cada 10 segundos), pero se puede pasar al siguiente elemento haciendo click con el ratón.
Muy chulo :P Está genial :D
16 de Junio de 2008 • 14:10 — RoxPues a ver quien se anima a utilizar esto...
16 de Junio de 2008 • 15:56 — markusYo tengo algo en mente...
16 de Junio de 2008 • 23:14 — KoNiKomarkus tengo una duda con
18 de Junio de 2008 • 22:43 — Shaiyiamarkus tengo una duda con esto, estoy haciendo en un bloque lateral una galería así, el caso es que las imagen es demasiado grande, cuando intento redimensionarla con los parámetros widht y height me salen como imagenes independientes no como galeria, y a todas les pongo el mismo tamaño. A ver si me puedes ayudar...ainmssss
¡Ah! también lo he intentado poniendo a cada imagen su tamaño original, y me ocurre lo mismo, imagenes independientes una debajo de otra :S
@Shaiyia, si puedes, pásame el código
18 de Junio de 2008 • 22:53 — markusAhora te mando un mp :)
18 de Junio de 2008 • 22:58 — Shaiyia¡¡Creo que ya se donde
18 de Junio de 2008 • 23:18 — Shaiyia¡¡Creo que ya se donde está el problema! A ver, en principio cambiaba width y height de lo que es el central, pero el de arriba del todo lo dejaba igual ¿podria ser eso?
Te pongo como lo tengo ahora, que todavía necesita modificación, pero al menos no me salen separadas ni enormes :D
<div align="center">
<div class="cycle">
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/Blog/19. gif" width="28" height="63" />
<br />
(<a href="ihttp://zonaforo.meristation.com/foros/viewtopic.php?t =1006118">Resident Evil: Kidik Chronicles</a>)
</div>
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/Blog/8.g if" width="48" height="64" />
<br />
(<a href="ihttp://zonaforo.meristation.com/foros/viewtopic.php?t =994844">La ira del destino: El fin de la humanidad</a>)
</div>
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/Blog/13. gif" width="50" height="64" />
<br />
(<a href="http://zonaforo.meristation.com/foros/viewtopic.php?t= 1021188">KOTOR 2: With bad mil parody</a>)
</div>
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/Blog/12. gif" width="41" height="64" />
<br />
(<a href="/rikkuinthemiddle/07-03-2008/2128/cronologia-y-persona jes-de-la-saga-silent-hill">Cronología y personajes de la saga Silent Hill</a>)
</div>
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/Blog/6.g if" width="38" height="64" />
<br />
(<a href="ihttp://blogs.gamefilia.com/maqy/12-03-2008/2332/una-h istoria-entre-todos">Piedra de Luna: Un relato entre todos</a>)
</div>
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/Blog/5.g if" width="38" height="64" />
<br />
(<a href="/lester-knight/24-04-2008/4943/el-baron-negro-edicion- especial-completa-revisada-y-descargable-relato">El Barón Negro</a>)
</div>
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/Blog/15. gif" width="52" height="64" />
<br />
(<a href="/lester-knight/21-04-2008/4663/meri-relatos-los-viejos -tiempos-parte-1-autor-the-unforgiven-too-relat">Los viejos tiempos</a>)
</div>
<div class="box10" align="center">
<img src="http://i12.photobucket.com/albums/a202/Shaiyia/3.gif" width="19" height="60" />
<br />
(<a href="/rapsodos/20-05-2008/6842/diario-de-snake">Diario de Snake</a>)
</div>
</div>
</div>
Por lo que he visto creo que ese era el problema, porque ya no me sale, pero ahora la galeria se me apelotona a la derecha, supongo que será por la diferencia de tamaños, está comprobado que no valgo para esto X-D
@Shaiyia, sobre los parámetros del cycle
19 de Junio de 2008 • 08:56 — markusEl problema es que cuando hay texto en los elementos de la galería, con algunos efectos especiales ocurren deplazamientos raros... también he observado problemillas cuando las imágenes que se utilizan no tienen el mismo tamaño. Es cuestión de ir probando varios efectos y usar aquel que mejor te resulte en cada caso.
Aquí te propongo empezar por estos parámetros:
<div class="cycle" cycle="fx=fade;width=200;height=125">
El efecto especial fade sólo cambia la opacidad de los elementos. Al no variar dinámicamente el tamaño, como ocurre con otros efectos especiales, es más facil de usar. Te puede venir bien para acabar de ajustar los parámetros width y height (dimensiones de la galería). Luego, ya puedes ir probando con otros efectos hasta que encuentres otro que se ajuste sin montar estropicios, y que te guste más, claro.
Muchas gracias markus, voy a
19 de Junio de 2008 • 12:11 — ShaiyiaMuchas gracias markus, voy a ver si lo arreglo :)
Edito: Con lo que me has puesto ha quedado perfecta, ahora puedo aligerar la carga del bloque, muchas gracias otra vez :)
@Shai, te ha quedado que ni pintao :-)
19 de Junio de 2008 • 15:51 — markusEstoy teniendo un problema
7 de Octubre de 2008 • 23:49 — The_unforgiven_tooEstoy teniendo un problema en mi última entrada de blog. Al principio se ve la galería cycle perfectamente, pero en cuanto recargo la página ya no se ven.
Además, cuando le doy a editar, resulta que se ha comido parte de las características del cycle.
Debería ser así:
<div align="center">
<div class="cycle" cycle="fx=fade;width=337;height=557">
<img src="http://i183.photobucket.com/albums/x53/The_unforgiven_j uegos/1-baja.jpg" width="287" height="460" />
<img src="http://i183.photobucket.com/albums/x53/The_unforgiven_j uegos/1-alta.jpg" width="337" height="557" />
</div>
</div>
Y me sale:
<div align="center">
<div class="cycle">
<img src="http://i183.photobucket.com/albums/x53/The_unforgiven_j uegos/1-baja.jpg" width="287" height="460" />
<img src="http://i183.photobucket.com/albums/x53/The_unforgiven_j uegos/1-alta.jpg" width="337" height="557" />
</div>
</div>
Un saludo.
Probando...
8 de Octubre de 2008 • 00:17 — markus¿cómo lo ves aquí?
<div align="center">
<div class="cycle" cycle="fx=fade;width=390;height=292">
<img src="http://i183.photobucket.com/albums/x53/The_unforgiven_j uegos/solace-23.jpg" width="390" height="292" />
<img src="http://i183.photobucket.com/albums/x53/The_unforgiven_j uegos/solace-34.jpg" width="390" height="292" />
</div>
</div>
El problema que te desaparezca el atributo con los parámetros del cycle se debe a que el editor WYSIWYG se lo come con patatas. Tendrías que desactivar el editor ese para poder editar el HTML manualmente.
Parece que ya lo ve todo el
8 de Octubre de 2008 • 00:39 — The_unforgiven_too