Foros del Web » Programando para Internet » Javascript »

Resaltar enlace en menu

Estas en el tema de Resaltar enlace en menu en el foro de Javascript en Foros del Web. Hola amigos. En un menu lateral normal, necesito que cuando clickeo un enlace , este se quede de un color determinado, mientras que los otros ...
  #1 (permalink)  
Antiguo 14/01/2006, 14:58
 
Fecha de Ingreso: diciembre-2005
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 0
Resaltar enlace en menu

Hola amigos.

En un menu lateral normal, necesito que cuando clickeo un enlace , este se quede de un color determinado, mientras que los otros se mantengan con el color original.

He visto muchos scripts con menus deslizantes, en forma de arbol, etc..., pero este, que parece mas sencillo, no he conseguido encontrarlo.

Gracias por la ayuda
Un abrazo
  #2 (permalink)  
Antiguo 15/01/2006, 02:57
 
Fecha de Ingreso: diciembre-2005
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 0
Pondre un par de ejemplos de lo que que necesito y no consigo hacer:

Pondre un par de ejemplos de lo que que necesito y no consigo hacer:

http: //actualidad.terra.es/

http: //news.bbc.co.uk/2/hi/south_asia/default.stm

En estas dos direcciones, en el menu de la izquierda, queda marcado el enlace activo, mientras que los demas se ven normalizados.

Necesitaría un tutorial o una orientación de como poder realizar ese efecto, es dcir , darle un css concreto al enlace activo, mientras el resto seguirían sin ningun cambio.

Un menu que pudiera colocar posteriormente en todas las paginas de mi sitio.

He buscado en estos foros, en hotscrips, en otros lugares, y encuentro menus muy complicados. Yo opto por la sencillez de cara al ususario, y este pequeño detalle en el menu no consigo encontrarlo. Imagino que hay que jugar con los elementos del menu quiza con elementById, hacer un array con esos elementos e indicar a cual de ellos hay que cambiarle las css cuando este activo y en caso contrario volver a normalizarlo con el resto de enlaces no activos...

Gracias por el interes
  #3 (permalink)  
Antiguo 15/01/2006, 03:17
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Pertenece a CSS

Fijate en este enlace:
http://css.maxdesign.com.au/listamatic/vertical15.htm#
  #4 (permalink)  
Antiguo 15/01/2006, 04:52
 
Fecha de Ingreso: diciembre-2005
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 0
Gracias Panino5001, algo asi es lo que necesito, pero de forma automatizada, es decir...
que yo no tenga que cambiar en cada pagina el "<li id="active">".

Necesito q cada vez que se acceda a un link del menu, automaticamente cambie el aspecto de ese link pero no de los demas.

En el caso del menu que me recomiendas , en cada página habría que poner el codigo del menu poniendo en cada enlace correspondiente el id="active".

Yo quiero meter el menu en un include por si quisiera ampliarlo, no tener que cambiarlo de cada una de las paginas , sino, una sola vez desde un archivo include.

Espero explicarme bien.

Un abrazo
  #5 (permalink)  
Antiguo 15/01/2006, 04:57
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
para aplicarle un estilo distinto al enlace clickeado es lo que te comentó PANINO .

Ahora, luego de clickear, la página se recarga???
__________________
by Capitán Buscapina
.
  #6 (permalink)  
Antiguo 15/01/2006, 05:24
 
Fecha de Ingreso: diciembre-2005
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 0
Cap.Buscapina , si lo que me ha comentado Panino es en efecto correctisimo. Para cambiar las css de cada uno de los enlaces cuando se clickea y, logicamente, ese efecto, en cada uno de los enlaces, se ve cuando se recarga la pagina.

A ver si me explico.

Yo, en efecto, quiero ese tipo de efecto, exactamente ese tipo de efecto, el que se ve en la pagina que me recomienda Panino(evidentemente con otro tipo de efectos css's)...

Pongamos un ejemplo...

imaginar que tengo 1000 paginas con el mismo menu lateral siempre....

Si que se me ocurre añadir en el menu lateral un enlace mas o cualquier pequeño cambio, con el ejemplo anterior tendria que rehacer las mil paginas para añadir ese enlace de mas...

Con un archivo include, solo tendría que hacer ese cambio una vez.

Por eso hablaba de un script que pueda realizar esa funcion. La funcion de cambiar el aspecto de un enlace del menu cuando este se clickea, mientras el resto sigue con su aspecto original.

En el caso del ejemplo de Panino, tendria que cambiar la instruccion <li id="active"> en cada una de las 1000 paginas, poniendolo en el enlace correspondiente para cambiar su aspecto con respecto a los demas....

Por eso, necesito un script que lo realice automaticamente, para no relaizar el cambio a mano.

En fin, no se explicarlo mejor..

Un abrazo.
  #7 (permalink)  
Antiguo 15/01/2006, 07:35
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
si bien no soy experto, creo que tenés tres caminos mediante Javascript:

1.- A mano (con los problemas que vos comentas)
2.- UItilizando cookies (cada ves que se clickea se llama a una funcion para almacenar en una cookie el id,nombre u orden del enlace)
3.- pasandolo como parámetro en la URL y luego recuperándolo con JS.


Si utilizás un lenguaje del lado del servidor, todo se simplificaría bastante.

saludos
__________________
by Capitán Buscapina
.
  #8 (permalink)  
Antiguo 15/01/2006, 08:45
 
Fecha de Ingreso: diciembre-2005
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 0
Gracias por la respuesta.. creo que la tercera solución es la más interesante.

Voy a intentarlo.

Un saludo
  #9 (permalink)  
Antiguo 15/01/2006, 13:58
 
Fecha de Ingreso: diciembre-2005
Mensajes: 18
Antigüedad: 18 años, 4 meses
Puntos: 0
Finalmente lo he hecho con lenguaje del lado del servidor. Con php

En un archivo llamado menu.inc se introduce el código que valdrá para todas las páginas que mantengan el mismo menú lateral:

Código PHP:
<?

$url
$_SERVER['PHP_SELF'];
if(
$url=="/carpeta/archivo1.php"){
$a="color:blue;font-family:verdana;font-size:18px";
}else{
$a="color:red;font-family:verdana;font-size:14px";
}





if(
$url=="/carpeta/archivo2.php"){
$b="color:blue;font-family:verdana;font-size:18px";
}else{
$b="color:red;font-family:verdana;font-size:14px";
}




if(
$url=="/carpeta/archivo3.php"){
$c="color:blue;font-family:verdana;font-size:18px";
}else{
$c="color:red;font-family:verdana;font-size:14px";
}
?>

<a  h r e f="h t t p: //w w w.midominio.c o m/carpeta/archivo1.php" style='<? echo $a?>'>Archivo1</a>

<br><br>

<a  h r e f="h t t p: //w w w.midominio.c o m/carpeta/archivo2.php" style='<? echo $b?>'>Archivo3</a>
<br><br>

<a  h r e f="h t t p: //w w w.midominio.c o m/carpeta/archivo3.php" style='<? echo $c?>'>Archivo3</a>

y después en cada archivo se introduce el include, en este caso en los tres enlaces de ejemplo(archivo1.php, archivo2.php y archivo3.php):

Código PHP:
<?
include("menu.inc");
?>

de esta manera sólo habría que trabajar con el archivo menu.inc. Cambiando este, se cambiaría el menu lateral de todas las páginas que tuvieran el include correspondiente.

A mi me interesaría hacer algo parecido pero en javascript para no cargar innecesariamente el servidor y porque en ciertas acciones javascript es un lenguaje mas rápido al trabajar en el navegador del ususario.

Me gustaría que alguien me dijera un codigo similar en javascript, se lo agradecería

Un abrazo
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 11:50.