Menú Prnicipal
Sindicate this blog
RSS 1.0
Tagboard
Radio On Line
Radio Wazee
Implícate
Manifiesto por la liberación de la Cultura No soy Pirata
Contenidos Bajo licencia CC
Creative Commons License
 
Web sponsorizada por Im3diA comunicación
Artículos y Tutoriales
  
Publicidad Intersticial
19/01/2005 | Fco. Moreno
  

Estos anuncios flotantes que estamos acostumbrados a ver en páginas como ya.com, terra, lycos... están basados en capas (o layers) a las que se le da en un momento determinado la característica de visibilidad o no. Es decir tú puedes tener en una página web una capa situada por encima del resto del contenido de la web, ocupando un espacio visible predominante con respecto al resto de elementos de la web. En el caso de que la web utilice más capas, es importante observar el z-index de esa capa, y tener en cuenta de que debe ser superior al de las demás existentes en el documento.

Y para su cierre u ocultación, no hace falta el buscar complicados scripts por internet o programarlos a mano. Con los propios medios de dreamweaver, utilizaremos en comportamiento "show/hide layers" o "mostrar u ocultar capas" situado en la ventana de comportamientos (behaviours) de dreamweaver. Este comportamiento al aplicarlo, nos inserta en la cabecera de la web estas funciones:

<script language="JavaScript" type="text/JavaScript">
<!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4))
{
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }
}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
} MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>

Que sin pasar a analizar, nos permitirá ocultar la capa flotante mediante un enlace "cerrar" que pongamos en la parte superior de nuestra capa. En el ejemplo1 que he preparado, podéis ver como inserto una capa por encima del contenido de la web y mediante un enlace situado dentro, podemos ocultar esa capa. Un inciso, esa capa debe estar identificada, es decir, debe tener un "id" para que funciones correctamente. Esto, traducido al código queda algo así:

<div id="capa01" style="position:absolute; width:200px; height:262px;
z-index:1; left: 246px; top: 83px; background-color: #990000;
layer-background-color: #990000; border: 1px none #000000;">
<a href="#" onClick="MM_showHideLayers('capa01','','hide')">Cierrame!!</a></div>

A partir de aquí, ya es echarle imaginación. En el ejemplo2 lo que tenemos es una imagen gif transparente, pero con la misma funcionalidad exactamente:

<div id="capa01" style="position:absolute; width:200px;
height:149px; z-index:1; left: 169px; top: 125px;"><img src="images/donpaco.gif" width="339" height="170" border="0" usemap="#Map">
<map name="Map">
<area shape="rect" coords="304,14,328,36" href="#"
onClick="MM_showHideLayers('capa01','','hide')">
</map>
</div>

En este caso el área del botón no es ni más ni menos que un mapa html. Y en el ejemplo 3 he preparado un pequeño flash, que quedaría insertado de la siguiente forma:

<div id="capa01" style="position:absolute;
width:344px; height:155px; z-index:1; left: 169px; top: 125px;">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=
"............" width="339" height="170">
<param name="movie" value="swf/donpaco.swf">
<param name="quality" value="high">
<param name="wmode" value="transparent">
<embed src="swf/donpaco.swf" width="339" height="170" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" wmode="transparent"></embed>
</object>
</div>

Dos cosas importantes, aquí. La capa que contiene al flash, debe ser transparente, es decir sin ningún color de fondo (esto es aplicable al ejemplo2 también) y la película de flash debe tener el atributo de "wmode" en "transparent". El botón que desde el flash nos permitirá ocultar la capa tendría estas acciones:

on (press) {
stopAllSounds ();
getURL ("javascript:MM_showHideLayers('capa01','','hide')");
}

Bueno, podeis bajar los ejemplos de aquí: http://www.fcomoreno.net/intersticial/archivos.zip

Porque es mejor verlo con los ejemplos.

Y ahora es que le echeis creatividad para hacer que se oculte tras un tiempo, que la capa se coloque en un sitio fijo... se me ocurren muchas cosas. Yo, me voy a fumar un cigarrito. :-)

Salu2

 
fmkr_2.0
Principal | Actualidad RSS | Quien soy | Portfolio | Artículos | Galería de Fotos
Libro de Visitas | Foros | Aviso Legal

FMKR 2.0 Blog Personal de Fco. Moreno - 2008 | Basado en PHPNews CMS
www.fcomoreno.net | www.fmkr.net