Foros del Web » Programando para Internet » Javascript »

Problema en menú

Estas en el tema de Problema en menú en el foro de Javascript en Foros del Web. Hola! Estoy programando un menú de lo más simple, de esos que las opciones de menú estan en una tabla, y cuando haces onmouseover en ...
  #1 (permalink)  
Antiguo 10/05/2004, 10:13
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años
Puntos: 1
Problema en menú

Hola!
Estoy programando un menú de lo más simple, de esos que las opciones de menú estan en una tabla, y cuando haces onmouseover en esta aparece una capa, que desaparecerá cuando el mouse no esté justo encima de la capa que ha aparecido o de la celda que la hace aparecer.
El caso es que la capa desaparece aun cuando el mouse está encima de ella, pero solo cuando saco el mouse de la primera celda.
A ver si alguien puede ayudarme... Gracias!!!
Aqui os dejo el codigo:

<HTML>
<HEAD>
<SCRIPT language="javascript">
var coorX;
var coorY;
var Obj;

function actualizaCoordenada()
{
coorX=event.clientX;
coorY=event.clientY;
}
function mostrarOcultar(capa,mostrar)
{
//mostrar: 1 --> se muestra
//mostrar: 0 --> se esconde

if (mostrar==1) {document.getElementById(capa).style.visibility="v isible";}
if (mostrar==0) {document.getElementById(capa).style.visibility="h idden";}
}

function comprueba(capa)
{

if (estaEnArea(capa)==false)
mostrarOcultar(capa,0);
}

function estaEnArea(capa)
{
var altoCapa,anchoCapa,topCapa,leftCapa;
Obj = document.getElementById(capa);

altoCapa = parseInt(Obj.style.height);
anchoCapa = parseInt(Obj.style.width);
topCapa = parseInt(Obj.style.top);
leftCapa = parseInt(Obj.style.left);

if ((coorX >= leftCapa && coorX <= (leftCapa + anchoCapa)) && (coorY >= topCapa && coorY <= (topCapa + altoCapa)))
return true;
else
return false;
}
</script>
</head>
<body onmousemove="actualizaCoordenada()">
<table width="100">
<tr>
<td bgcolor="red" onmouseover="mostrarOcultar('capa1',1)" onmouseout="comprueba('capa1')">hola</td>
</tr>
</table>
<div id="capa1" style="position:absolute;top:18;width:100;left:100 ;height:100;background-color:yellow;visibility:hidden">
<table width="100%" bgcolor="orange" onMouseOut="mostrarOcultar('capa1',0)">
<tr><td bgcolor="white">Opción 1</td></tr>
<tr><td bgcolor="white">Opción 2</td></tr>
<tr><td bgcolor="white">Opción 3</td></tr>
</table>
</div>
</body>
</HTML>
  #2 (permalink)  
Antiguo 10/05/2004, 11:47
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años
Puntos: 1
HELP!
  #3 (permalink)  
Antiguo 10/05/2004, 13:58
 
Fecha de Ingreso: septiembre-2002
Ubicación: Argentina
Mensajes: 144
Antigüedad: 22 años, 2 meses
Puntos: 0
Fijate en esta linea:

<table width="100%" bgcolor="orange" onMouseOut="mostrarOcultar('capa1',0)">

Sacale el ",0"

<table width="100%" bgcolor="orange" onMouseOut="mostrarOcultar('capa1')">

Fijate si asi va...
  #4 (permalink)  
Antiguo 10/05/2004, 15:42
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años
Puntos: 1
Hola!
EN primer lugar gracias por responder.
En cuanto a que quite el ",0", si lo hago y llamo a la función entonces el parametro mostrar de la función no existe, y lo unico que hace es dejar la capa visible, pero lo que quiero yo es que la capa desaparezca o bien cuando el mouse no esté sobre ella o cuando el mouse no esté tampoco en la celda que la hace visible (y esto cuando no coincida que pase a estar sobre la misma capa)... Así que eso no funciona...
de cualquier forma, gracias!
  #5 (permalink)  
Antiguo 11/05/2004, 01:56
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años
Puntos: 1
nadie puede ayudarme??? plis!
  #6 (permalink)  
Antiguo 11/05/2004, 14:25
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años
Puntos: 1
Siento ser tan pesada... pero es que no sé por qué falla, de verdad nadie puede ayudarme? o darme alguna direccion donde basarme para hacer justo lo que quiero que salga con este script?
Gracias otra vez!
  #7 (permalink)  
Antiguo 12/05/2004, 02:04
 
Fecha de Ingreso: mayo-2004
Mensajes: 45
Antigüedad: 20 años, 6 meses
Puntos: 0


Saludooos!
Bueno, ya que acabo de ingresar en el foro este, a ver si puedo ser util...

Prueba a modificar la linea donde describes la tabla dentro del tag DIV.

<table width="100%" bgcolor="orange" onmouseover="mostrarOcultar('capa1',1)" onMouseOut="mostrarOcultar('capa1',0)">


Simplemente añade el evento "onmouseover" con tu funcion de mostrar la capa y a ver si te gusta. Lo he probado y creo que funciona como esperas... en fins (para una vez que me se una respuesta! jejeje) plas plas plas

Bueno, de todas formas me parece que no es mas que un apaño seguramente sobre este evento en las lineas de mas arriba, pero todo es cuestion de depurarlo a partir de que funciones no?

Enga, us saludo
__________________
Et lux in tenebris lucet...
s.f.wil
  #8 (permalink)  
Antiguo 12/05/2004, 02:40
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 22 años
Puntos: 1
gracias wilby!!!
No habia probado poner el onmouseover porque estaba yo pensando ( equivocada, claro esta) que el onmouseover también se ejecutaba aunque la capa estuviera invisible... pero ya veo que no... Muchisimas gracias!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:39.