Foros del Web » Programando para Internet » Javascript »

problema con Funcion para menu desplegable

Estas en el tema de problema con Funcion para menu desplegable en el foro de Javascript en Foros del Web. he creado esta función Mostrar para hacer el efecto de persiana sube y baja en mis menus desplegables, aunque creo que no lo tengo del ...
  #1 (permalink)  
Antiguo 15/01/2008, 05:26
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Información problema con Funcion para menu desplegable

he creado esta función Mostrar para hacer el efecto de persiana sube y baja en mis menus desplegables, aunque creo que no lo tengo del todo bien

P.d: la función Ocultar si me funciona

gracias por adelantado

-----------------------------

height=30 /* tamaño compacto del menu */
function Mostrar(desplegable){
desplegable.style.height="auto"; /* pongo tamaño normal del menu */
auto=desplegable.offsetHeight; /* guardo tamaño normal del menu */

height ++ /* sumo uno */
desplegable.style.height=height; /* crece el menu */
if (height < auto){setTimeout("degradado()",30)} /* cuando alcanze su tamaño dejara de rellamar a esta función */
}

function Ocultar(desplegable){desplegable.style.height=30;}
  #2 (permalink)  
Antiguo 15/01/2008, 05:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: problema con Funcion para menu desplegable

Hola quico5. Bienvenido al foro.

Estás usando como nombre de variable height, puede que eso te de problemas, porque se lía con el nombre de la propiedad. Además deberías especificar qué medida estás usando:

Código:
desplegable.style.height=tuvariable+'px';
Saludos,
  #3 (permalink)  
Antiguo 15/01/2008, 05:42
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

gracias

tambien funciona sin px (lo he comprovado y los div responden igual, tambien en css)

lo he intentado de varias formas y basandome en ejemplos de diferentes webs parece que es lo quemas se aproxima

cambiando los height por otra cosa tampoco va

--------------------------

contador=30 /* tamaño compacto del menu */
function Mostrar(desplegable){
desplegable.style.height="auto"; /* pongo tamaño normal del menu */
tamano=desplegable.offsetHeight; /* guardo tamaño actual del menu */

contador ++ /* sumo uno */
desplegable.style.height=contador; /* crece el menu */
if (contador < tamano){setTimeout("degradado()",30)} /* cuando alcanze su tamaño dejara de rellamar a esta función */
}


tengo tres menus con tres div que con la función Ocultar va bien, aunque el nuevo efecto quiza requiera algun estra, que por ahora no me preocupa

gracias
<div onMouseOver="Mostrar(this);" onMouseOut="Ocultar(this);">
  #4 (permalink)  
Antiguo 15/01/2008, 05:48
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

con setTimeout("degradado()",30)} retraso la llamada a 0,3 segundos

oh deveria llamarse Mostrar en lugar de degradado, pero aun asi tampoco va
  #5 (permalink)  
Antiguo 15/01/2008, 06:05
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

desplegable.style.height=222+'px'; ("asi si funciona")
desplegable.style.height=222'; ("asi si funciona")

creo que el problema radica en que usando this->desplegable (resulta mas comodo) y haciendo la rellamada despues, se pierde el valor this, supongo que podria reenviarlo aunque estoy dando mis primeros pasos en JavaScript y no se muy bien como hacer

gracias
  #6 (permalink)  
Antiguo 15/01/2008, 10:05
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: problema con Funcion para menu desplegable

Hola de nuevo.

desplegable.style.height=222+'px'; ("asi si funciona en todos los navegadores")
desplegable.style.height=222'; ("asi si funciona en Internet Explorer")

Saludos,
  #7 (permalink)  
Antiguo 15/01/2008, 13:45
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

por si acaso ye puesto los PX, lo de necesaro PX no lo sabia aunque Tengo las ultimas versinoes de Firefox3 y Opera y ambos me lo permiten de ambas formas, sigo pensando que es culpa del SetTimeOut que hace la rellamada y se pierde el this inicialmente enviado

gracias
  #8 (permalink)  
Antiguo 15/01/2008, 13:51
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

lo tengo asi ahora, gracias por adelantado

----------------------------------------------------

i=30
function Mostrar(desplegable){
desplegable.style.height="auto";
h=desplegable.offsetHeight;
i ++
desplegable.style.height=i+"px";
if (i < h){setTimeout("Mostrar()",30)}

/* desplegable.style.height=100+"px"; este si funcionaria */

}

function Ocultar(desplegable){desplegable.style.height=30+" px";} /* este funciona */
  #9 (permalink)  
Antiguo 15/01/2008, 13:55
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

CODIGO COMPLETO

<style>
*html .bm{position:absolute;
width: expression( (width = document.body.clientWidth ? document.body.clientWidth : document.body.clientWidth));
top: expression( 0 + (top = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + \'px\' );}

body{backnhground:url(wide-wallpaper-1280x800-027.jpg) center fixed;}
.bm{position:fixed; top:0; left:0; width:100%; height:30; background:url(barra.png) top repeat-x;}
.bm td{vertical-align:top;}
.bm a{display:block; height:30; line-height:30px; text-align:center; text-decoration:none; outline:0; color:black; font-size:16px; font-family:Tahoma, Geneva; background:url(enlace.png);}
.bm a:hover{background:url(enlace.png) 0px 30px;}
.bm .td, .bm a{width:160;}
.td div{overflow:hidden; height:30px;}
</style>

<script language="Javascript">
i=30
function Mostrar(desplegable){
desplegable.style.height="auto";
h=desplegable.offsetHeight;
i ++
desplegable.style.height=i+"px";
if (i < h){setTimeout("Mostrar()",30)}
}
function Ocultar(desplegable){desplegable.style.height=30+" px";}
</script>



<div class=bm>

<table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td>*</td><td class=td><div onMouseOver="Mostrar(this);" onMouseOut="Ocultar(this);">

<a href=index.php>Portada</a>
<a href=modules.php?name=Content&pa=showpage&pid=3>¿Q uienes somos?</a>
<a href=modules.php?name=Forums&file=viewtopic&t=533> Plataforma</a>

<script languaje="javascript">function mailAntiSpam(){
var usuario = "anhida"
var dominio = "gmail.com"
document.write("<a href=\"mailto:" + usuario + "@" + dominio + "\">" + usuario + "@" + dominio + "</a>")}mailAntiSpam()</script>

</div></td><td class=td><div onMouseOver="Mostrar(this);" onMouseOut="Ocultar(this);">

<a href=modules.php?name=Forums>Comunidad</a>
<a href=modules.php?name=Private_Messages>Tu cuenta</a>
<a href=modules.php?name=Forums>Foros</a>
<a href=http://www.anhida.org/chat/ target=blank>Chat</a>
<a href=http://www.asociaciones.anhida.org target=blank>Asociaciones</a>

</div></td><td class=td><div onMouseOver="Mostrar(this);" onMouseOut="Ocultar(this);">

<a href=modules.php?name=Content&pa=showpage&pid=1>TD AH</a>
<a href=modules.php?name=Content&pa=showpage&pid=2>Ac tividades</a>

</div></td><td>*</td></tr></table>

</div>
  #10 (permalink)  
Antiguo 15/01/2008, 14:14
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

usando un alert para i h y desplegable me devuelve
---------------------------------

<localhost>

comprovacion: 60-32-[object HTMLDivElement] ("32 es el incremento que acabara en 60")

el problema creo que me lo esta dando el [object HTMLDivElement] deribado del inicial this de -> <div onMouseOver="Mostrar(this);" onMouseOut="Ocultar(this);">

-----------------------------
gracias por adelantado
  #11 (permalink)  
Antiguo 15/01/2008, 14:26
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Re: problema con Funcion para menu desplegable

he hecho un ademanto, a uno de los menus le puse id=menu

y a la funcion le cambie los desplegable por menu y ahora funciona, era lo que suponia

ahora solo queda aberiguar la forma correcta de realizarlo, pues el problema deriba del this a desplegable que aunque inicialmente servia para los tres menus, no sirve para este efecto de la nueva funcion
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 21:39.