Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/01/2006, 17:56
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola otra vez:

El efecto ya casi lo tengo:
Código:
<html>
<head>
<script>
textoCaliente = new Array();
textoCaliente["sol"] = ["zonasol1", "zonasol2"];
textoCaliente["nube"] = ["zonanube1"];
textoCaliente["fondo"] = [];
textoCaliente["fondoopaco"] = [];
textoCaliente["palmizq"] = [];
textoCaliente["palmder"] = ["zonapalmder"];

function tipoCapa(nombre)	{
	this.nombre = nombre;
	this.cual = "";
	this.retardo = 0;
	this.visible = true;
}
tipoCapa.prototype.mostrar = function(cual)	{
	document.images[cual].style.visibility = "visible";
	this.cual = cual;
	marcar(cual);
}

tipoCapa.prototype.ocultar = function(cual)	{
	document.images[cual].style.visibility = "hidden";
	desmarcar(cual);
	this.cual = "";
}

tipoCapa.prototype.ocultarespecial = function(cual, cuanto)	{
	if (cuanto > 0)	
		setTimeout(this.nombre + ".ocultarespecial('" + cual + "')", cuanto - 10);
	else
	if (this.cual == "")
		document.images[cual].style.visibility = "hidden";
}

tipoCapa.prototype.mostrarespecial = function(cual)	{
	if (this.cual != cual)
	document.images[cual].style.visibility = "visible";
}

var elemento;

function marcar(que)	{
	for (sitio in textoCaliente[que])
		document.getElementById(textoCaliente[que][sitio]).style.color = "blue";
}

function desmarcar(que)	{
	for (sitio in textoCaliente[que])
		document.getElementById(textoCaliente[que][sitio]).style.color = "black";
}

function presentar(que) {
	alert(que);
}

</script>
<style type="text/css">
p	{
	text-align: justify;
	text-indent: 1cm;
	margin: 0 auto;
}
.capa	{
	position: absolute;
	top: 0px;
	left: 0px;
}
</style>

</head>
<body style="background-color: #bbbbbb" onload="elemento = new tipoCapa('elemento')">

<div id="contenedor" style="position: relative;" >

<img src='http://www.pepemolina.com/mapas/FONDO.gif' name="fondo" style="position: relative; top:0px; left: 0px;visibility: visible" 
usemap='#mapa' onmouseover="elemento.mostrarespecial('fondoopaco')" />

<img name="http://www.pepemolina.com/mapas/fondoopaco" src='fondo.png'
usemap='#mapa' class="capa" style="visibility: hidden"
onmouseout="elemento.ocultarespecial('fondoopaco', 10)" />

<img name="nube" src='http://www.pepemolina.com/mapas/nube.png' usemap='#nube' style="visibility: hidden" class="capa" />
<img name="sol" src='http://www.pepemolina.com/mapas/sol.png' usemap='#sol' style="visibility: hidden" class="capa" />
<img name="palmizq" src='http://www.pepemolina.com/mapas/palmizq.png' usemap='#palmizq' style="visibility: hidden" class="capa" />
<img name="palmder" src='http://www.pepemolina.com/mapas/palmder.png' usemap='#palmder' style="visibility: hidden" class="capa" />

</diV>

<map name='mapa' >
<area name='area1' shape='poly' coords='204,100,307,102,298,88,290,84,280,84,273,89,265,77,253,77,238,79,233,84,232,88,220,87,211,94' alt='' target='' title='nube'
 href='#' onmouseover='elemento.mostrar("nube")' >
<area name='area2' shape='circle' coords='40,29,29' alt='' target='' title='' href='#' 
onmouseover='elemento.mostrar("sol")' >
<area name='area3' shape='rect' coords='1,73,138,345' alt='' target='' title='' href='#' 
onmouseover='elemento.mostrar("palmizq")' >
<area name='area4' shape='rect' coords='336,80,480,341' alt='' target='' title='' href='#' 
onmouseover='elemento.mostrar("palmder")' >
</map>

<map name="nube" >
<area shape='poly' coords='204,100,307,102,298,88,290,84,280,84,273,89,265,77,253,77,238,79,233,84,232,88,220,87,211,94' 
alt='' target='' title='' href='javascript: presentar("nube")' onmouseout='elemento.ocultar("nube")' >
</map>

<map name="sol" >
<area shape='circle' coords='40,29,29' 
alt='' target='' title='' href='javascript: presentar("sol")' onmouseout='elemento.ocultar("sol")' >
</map>

<map name="palmizq" >
<area shape='rect' coords='1,73,138,345' 
alt='' target='' title='' href='javascript: presentar("palmera izquierda")' onmouseout='elemento.ocultar("palmizq")' >
</map>

<map name="palmder" >
<area shape='rect' coords='336,80,480,341' 
alt='' target='' title='' href='javascript: presentar("palmera derecha")' 
onmouseout='elemento.ocultar("palmder")' >
</map>

<p>
Zonas calientes: <span id="zonasol1"
onmouseover="elemento.mostrar('sol')" onmouseout="elemento.ocultar('sol')" >sol</span>,
<span id="zonanube1" 
onmouseover="elemento.mostrar('nube')" onmouseout="elemento.ocultar('nube')" >nube</span>
son zonas a las que se puede acceder tanto desde el mapa como desde fuera...
</p>
<p>
pruebe a pasar el ratón sobre el 
<span id="zonasol2" onmouseover="elemento.mostrar('sol')" onmouseout="elemento.ocultar('sol')" >sol</span>
o por la
<span id="zonapalmder"
onmouseover="elemento.mostrar('fondoopaco'); elemento.mostrar('palmder')"
onmouseout="elemento.ocultar('palmder'); elemento.ocultar('fondoopaco')" >palmera derecha</span>
</p>


</body>
</html>
Está en este enlace: http://www.pepemolina.com/mapas/prueba2.html (por cierto, los enlaces al menos a mi me funcionan... )

Las imagenes pegadas a los bordes aún no van bien... tal vez sea mejor poner un borde (o margen) a la capa contenedora y usar el evento de la capa ...

La verdad es que tu respuesta se parece bastante a la mía en los resultados, pero con areas se pueden tener zonas calientes de polígonos y círculos

Por cierto, las áreas las produzco desde esta otra página que quiero mejorar: http://www.pepemolina.com/mapas/index2.html

Hay que seleccionar una imagen y enviar el formulario para crearlas (mejoré un poco una versión de la misma página que tal vez hayas visto anteriormente)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo