Foros del Web » Programando para Internet » Javascript »

Manejo del menú

Estas en el tema de Manejo del menú en el foro de Javascript en Foros del Web. Buenas. Tengo un menú compuesto de 5 imágenes que van cambiando de color conforme voy pasando por encima, y restaurandose al original cuando estoy fuera. ...
  #1 (permalink)  
Antiguo 12/01/2006, 16:08
 
Fecha de Ingreso: diciembre-2005
Mensajes: 26
Antigüedad: 18 años, 5 meses
Puntos: 0
Manejo del menú

Buenas.

Tengo un menú compuesto de 5 imágenes que van cambiando de color conforme voy pasando por encima, y restaurandose al original cuando estoy fuera.

Alguien ha visto algo para que la imagen resaltada se quede fija indicando al usuario que está en esa "sección"?? Es decir, cuando pinche sobre la primera sección, que esa imagen se quede resaltada y que el resto siga cambiando de color conforme vaya pasando por encima??

Gracias!!
  #2 (permalink)  
Antiguo 12/01/2006, 16:32
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 7 meses
Puntos: 4
sin código es imposible aventurar una solución.
__________________
by Capitán Buscapina
.
  #3 (permalink)  
Antiguo 12/01/2006, 16:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Se me ocurre que tengas una variable global con la última imagen pinchada, y condicionar ese efecto al valor de esa variable...

var actividad = "op1";

<img src="imagen1.gif" name="op1"
onclick="actividad = this.name; activar(this)"
onmouseover="if (actividad != this.name) resaltar(this)"
onmouseout="if (actividad != this.name) normalizar(this)"
alt="" />

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 12/01/2006, 17:38
 
Fecha de Ingreso: diciembre-2005
Mensajes: 26
Antigüedad: 18 años, 5 meses
Puntos: 0
Gracias caricatos... parece que va funcionando, buena idea.

Ahora solamente me falta ajustarlo para que cuando se pinche sobre una imagen, habiendo otra resaltada... desactivar esta última. Se quedan las dos resaltadas.
  #5 (permalink)  
Antiguo 12/01/2006, 17:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Usa el onclick para ello...

<img src="imagen1.gif" name="op1"
onclick="normalizar(actividad); actividad = this.name; activar(this.name)"
onmouseover="if (actividad != this.name) resaltar(this.name)"
onmouseout="if (actividad != this.name) normalizar(this.name)"
alt="" />

Fíjate que cambié los parámetros this por this.name... así que las funciones de resalte y des-resalte también tendrías que cambiarlas...

function resalte(cual) {
cual.style.borderColor = "red";
}

Suponiendo que sea algo como lo que puse, tendrías que cambiarlo por:

function resalte(cual) {
document.images[cual].style.borderColor = "red";
}

Espero que no tengas problema en implementarlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 12/01/2006, 18:23
 
Fecha de Ingreso: diciembre-2005
Mensajes: 26
Antigüedad: 18 años, 5 meses
Puntos: 0
Gracias de nuevo caricatos, pero ya lo he solucionado de otra forma. Pego la solución por si le sirve a alguien:

Código:
var menu = 'nomenu';  // Iniciado a un nombre no existente.

function ratonSobre(componente)
{
     if(componente.name != menu)
          resaltar(componente);		
}

function ratonFuera(componente)
{
     if(componente.name != menu)
          normalizar(componente);		
}

function activar(componente,imagen-resaltada)
{
     // Si pinchamos sobre una imagen ya resaltada, no hacer nada.
     if(menu != componente.name)
     {
          // El if es para cuando menu = 'nomenu' (1º vez), que no de error.
          if(document.images[menu] != undefined)
               document.images[menu].src = <normalizar(), menu=imagen-vieja>

          menu = componente.name;
          componente.src = imagen;
     }
}
Lo dicho... 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 21:33.