Tanto dar vueltas buscando algún tipo de script que permita utilizar algún tipo de ventana modal al estilo VideoBox, LightBox, PopBox o SlimBox que funcione correctamente y que sea lo suficientemente versátil como para permitir mostrar todo tipo de archivos y aquí esta, se llama LightWindow.
¿Por que me parece que esta es mejor que todas las otras que he probado? Porque, entre otras cosas pueden mostrarse imágenes, videos de distintos servicios, archivos de Flash, galerías, etc.
Esto de mostrar contenido en ventanas modales es muy lindo pero también es molesto tener que elegir uno u otro modelo porque cada uno de ellos hace algo diferente, uno para videos, otro para imágenes, ni hablar de compatibilidades. LightWindow tiene la particularidad de poder manejar prácticamente cualquier tipo de archivo multimedia y los detecta automáticamente. Además, es compatible con Firefox, IE6, IE7, Safari y Opera tanto en Windows como en Mac.
La ventana puede personalizarse todo lo que uno quiera y podemos crear galerías con cualquier tipo de archivo, colocar títulos, descripciones, etc.
Primero que nada, descargamos el ZIP
que contiene una serie de archivos y carpetas que incluyen demostraciones varias. De todos ellos, los que necesitamos alojar en un servidor propio son:prototype.js
scriptaculous.js
effects.js
lightwindow.js
lightwindow.css
Como el framework prototype es de uso bastante común y se emplea para diversas funciones y trucos, si ya lo hemos incluido en nuestra plantilla no deberemos preocuparnos y utilizamos el que tenemos; a lo sumo, verificamos si la versión es adecuada y si no, la reemplazamos por una más nueva. Lo mismo puede decirse de script.aculo.us y de su librería effects.
Los otros dos archivos, lightwindow.js y lightwindow.css son los que nos importan y los que pueden modificarse para adaptarse a nuestras necesidades. Por ejemplo, deberíamos alojar las imágenes utilizadas y cambiar las direcciones de: ajax-loading.gif, black.png, black-70.png, arrow-down.gif, arrow-up.gif, prevlabel.gif y nextlabel.gif.
Una vez que tenemos alojados los archivos, los incluimos en la plantilla, por ejemplo, justo antes de </head>:
<script type="text/javascript" src="URL_prototype.js"></script> <script type="text/javascript" src="URL_scriptaculous.js?load=effects"></script> <script type="text/javascript" src="URL_lightwindow.js"></script> <link rel="stylesheet" href="URL_lightwindow.css" type="text/css" media="screen" />
El script es muy sencillo de utilizar, basta agregar la clase lightwindow a cualquier enlace, por ejemplo:
<a href="URL_archivo" class="lightwindow">ENLACE</a>
En realidad, eso es todo, no hace falta nada más, de manera automática, el script reconocerá el tipo de archivo al que se refiere el enlace y actuará en consecuencia.
- Imágenes en formato bmp, gif, jpg, png y tiff
- Videos en formato avi, divx, m1v, m2v, mjpg, moov, mov, movie, mpa, mpe, mpeg, mpg, qt, viv, vivo y wmv.
- Audio en formato aif, aiff, m2a, m3u, mid, midi, mp2, mp3, mpa, mpg, mpga, ram y wav.
- Páginas en formato asp, aspx, cgi, htm, html, pl, php4, php3, php, php5, phtml, rb, rhtml, shtml, txt, y vbs.
- Aplicaciones en formato asf, pdf, pps, rm y swf.
Por supuesto, el navegador tendrá que tener los plugins necesarios para verlos y, eventualmente (por ejemplo en el caso del divx), habrá que modificar el script para que cargue los códigos necesarios. En la página principal del proyecto, hay una descripción de las instrucciones utilizadas, los tipos MIME soportados y los plugins y ActiveX establecidos por defecto.
Para crea una galería, el criterio es el mismo, ponemos enlaces a cada uno de los archivo y les agregamos a todos ellos un atributo REL con el mismo valor, por ejemplo:
<a href="URL_archivo1" class="lightwindow" rel="TítuloDemo[Subtítulo]">ENLACE 1</a> <a href="URL_archivo2" class="lightwindow" rel="TítuloDemo[Subtítulo]">ENLACE 2</a> <a href="URL_archivo3" class="lightwindow" rel="TítuloDemo[Subtítulo]">ENLACE 3</a>
<a href="URL_archivo1" class="lightwindow" rel="TítuloDemo[Subtítulo]">ENLACE</a> <a href="URL_archivo2" class="lightwindow" rel="TítuloDemo[Subtítulo]"></a> <a href="URL_archivo3" class="lightwindow" rel="TítuloDemo[Subtítulo]"></a>
<a class="lightwindow" href="URL_arhivo" params="lista de parámetros">ENLACE</a>
lightwindow_width es el ancho de la ventana (en pixeles)
lightwindow_height es el alto de la ventana (en pixeles)
lightwindow_top es la distancia entre el borde superior de la pantalla y el inicio de la ventana
lightwindow_left es la distancia entre el borde izquierdo de la pantalla y el inicio de la ventana
lightwindow_loading_animation se establece en false para no mostrar el efecto fade al cargarse
Otros parámetros son específicos para casos especiales:
lightwindow_show_images indica la cantidad de imágenes a mostrar simultáneamente en una galería (el valor por defecto es 1)
lightwindow_type es optativo e indica cómo debe ser interpretado el enlace (page, external, image, media, inline)
lightwindow_iframe_embed se utiliza para incrustar el medio dentro de un IFRAME en lugar de un DIV
lightwindow_form indica el nombre si estamos utilizando el script para mostrar un formulario
Si queremos usar varios parámetros, los separamos por comas, por ejemplo:
params=lightwindow_width=425,lightwindow_height=350,lightwindow_loading_animation=true" params="lightwindow_width=500,lightwindow_height=500,lightwindow_show_images=2"
<a class="lightwindow" href="URL_archivo" title="unTexto" caption="unTexto" author="unTexto" params="lista de parámetros">ENLACE</a>
<a href="#nombreID" class="lightwindow">ENLACE</a> <div id="nombreID" style="display: none;"> <div>... cualquier contenido HTML ...</div> </div>
#lightwindow_title_bar el área superior donde se muestra el atributo TITLE y el enlace que permite cerrar la ventana
#lightwindow_title_bar_title es el texto del atributo TITLE
#lightwindow_title_bar_close_link es el enlace con el texto "close"
#lightwindow_data_caption es el texto del atributo CAPTION
#lightwindow_data_author es el texto del atributo AUTHOR
Esto lo podemos hacer modificando el archivo lightwindow.css o sobrescribiéndolo en nuestra plantilla, agregando una etiqueta STYLE inmediantamente después del enlace a la hoja de estilo:
<link rel="stylesheet" href="URL_lightwindow.css" type="text/css" media="screen" />
<style type='text/css'>
#lightwindow_title_bar_title { ... }
a#lightwindow_title_bar_close_link, a:link#lightwindow_title_bar_close_link,
a:visited#lightwindow_title_bar_close_link { ... }
a:hover#lightwindow_title_bar_close_link, a:active#lightwindow_title_bar_close_link { ... }
#lightwindow_data_caption { ... }
#lightwindow_data_author { ... }
</style>


Hasta ahora, si usábamos la ventana para insertar una imagen, se generaba un código bastante estrafalario pero que al menos tenía una función, nos permitía hacer
La primera opción a tener en cuenta es el tamaño de la imagen a mostrar, dependiendo de esto, la etiqueta 






¿Y si quiero alinearla? Pués uso las alineaciones del editor o le agrego manualmente el atributo correspondiente. Por ejemplo, para que flote a la izquierda:






