Para que funcione necesitamos JavaScript y si bien podría ser posible hacerlo sin librerías adicionales, lo mejor es emplearlas para que el efecto sea más interesante. Vamos entonces a ver ejemplos tanto para JQuery (que son los scripts originales) como para Prototype + Script.aculo.us.
Para el primer ejempo usaremos jQuery así que debemos tener cargada la librería y luego, el script. Por último, las definciiones de CSS. Colocamos todo eso antes de </head>:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type='text/javascript'>
//<![CDATA[
... y aquí pegamos el contenido del archivo de texto ...
//]]>
</script>
<style>
#lightsoff-background {
height: 100%;
left: 0;
margin:0;
padding: 0;
position: absolute;
top: 0;
width: 100%;
z-index: 20;
}
</style><div id="lightsoff"><a href="#"> texto o imagen </a></div>El segundo ejemplo también requiere jQuery y es una idea de Emanuele Feronato. Como en el caso anterior, requerimos tener la librería, el script y las definiciones de CSS, todas ellas las colocamos antes de </head>:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type='text/javascript'>
//<![CDATA[
... y aquí pegamos el contenido del archivo de texto ...
//]]>
</script>
<style>
#the_lights{
background-color: #000;
display: none;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
#standout{
background-color: white;
padding: 5px;
position: relative;
z-index: 1000;
}
</style><div id='the_lights'></div>
<div id = "standout"> <div id="turnoff"> LUCES NO </div> <div id="soft"> A MEDIA LUZ </div> <div id="turnon"> LUCES SI </div> ... y aquí ponemos lo que queremos que sea visible, por ejemplo un video ... </div>
Por último, si lo que usamos es Prototype + Scriptaculous, la solución es un poco menos profesional pero, se me ocurrió que podría hacerse de modo similar, mezclando un poco de las dos anteriores. Agregamos el script:
<script type='text/javascript'>
//<![CDATA[
... y aquí pegamos el contenido del archivo de texto ...
//]]>
</script>function getPageSize() es la misma que se usa para el primer ejemplo y es la que nos permite calcular la altura de la ventana a oscurecer
function lightsOFF() es la función que oscurecerá la pantalla
function lightsON() es la función que restaurará la pantalla
Luego, el estilo CSS:
<style>
#OSCURECER { /* este es el div inferior, que ocupará toda la ventana */
background-color:#000;
opacity:0.9;
filter:alpha(opacity=90);
position: absolute;
margin:0;
padding: 0;
z-index: 20;
left: 0;
top: 0;
}
#lightsONOFF { /* este es el enlace que eprmutará el estado de esa ventana */
display: block;
opacity: 1 !important;
filter:alpha(opacity=100);
position: relative;
z-index: 30 !important;
/* cualquier propiedad de estilo */
}
object,embed {
opacity = 1 !important;
filter:alpha(opacity=100);
}
</style><div id='OSCURECER' style='display:none;'/>
<a href="javascript:lightsOFF();" id="lightsONOFF"> APAGAR LAS LUCES </a>La función lightsON() hace lo contrario, restaura la ventana con Effect.Fade ocultando el DIV y vuelve a cambiar el atributo href y el texto del enlace lightsONOFF.












