Foros del Web » Programando para Internet » Javascript »

Cambiar color de texto con evento onMouseOver

Estas en el tema de Cambiar color de texto con evento onMouseOver en el foro de Javascript en Foros del Web. Hola. Ante todo muchas gracias por la ayuda que se recibe. Mi problema es que quiero crear una barra de menú que realice las siguientes ...
  #1 (permalink)  
Antiguo 14/10/2009, 05:07
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Cambiar color de texto con evento onMouseOver

Hola.
Ante todo muchas gracias por la ayuda que se recibe.

Mi problema es que quiero crear una barra de menú que realice las siguientes tareas.

Por ejemplo barra de menú con 2 opciones opción 1 y opción 2.

quiero que al clicar en una opción su texto cambie de color. Hasta ahi todo bien con el siguiente código.

<script type="text/javascript">
function CambiaColor(esto)
{
esto.style.color="blue";

}
</script>
</head>
<body>
<a onMouseOver="CambiaColor(this)">opción 1</a>
</body
></html>


El problema lo tengo cuando añado la opción 2 por que quiero que al pasar por la encima de uno de ellos, el anterior vuelva a tener el color inicial.

<script type="text/javascript">
function CambiaColor(esto)
{
esto.style.color="blue";

}
</script>
</head>
<body>
<a onMouseOver="CambiaColor(this)">opción 1</a>
<a onMouseOver="CambiaColor(this)">opción 2</a>
</body
></html>


Se que el problema esta en la llamada "CambiaColor(this)" a la función pero no se como arreglar para que al ponerme encima de, por ejemplo, la opción 1, la opción 2 vuelva a tener el color original (por ejemplo black).

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 14/10/2009, 06:43
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 16 años, 10 meses
Puntos: 539
Respuesta: Cambiar color de texto con evento onMouseOver

Hola PeKichery.
Bienvenido a FdW
¿Obligatorio usar js? --> hay un foro específico para ese lenguaje.
¿No es obligatorio utilizar js? --> hay un lenguaje que se llama css y tenemos un foro para ello:
Código css:
Ver original
  1. a {color: #000;}
  2. a:hover {color: #c00;}

Un saludo
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++
  #3 (permalink)  
Antiguo 14/10/2009, 06:47
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Cambiar color de texto con evento onMouseOver

Sin ánimo de parecer un loro, como bien dice kseso?, con CSS puedes lograr eso que buscas y ahorrarte todas esas lineas de código.

No obstante, si por alguna razón tienes que hacerlo con javascript (que en principio no es recomendable) y obviando mi poco conocimiento de javavascript, puedes crear una función que cambie el color a black, y ponerlo en onMouseOut.
  #4 (permalink)  
Antiguo 14/10/2009, 07:04
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Cambiar color de texto con evento onMouseOver

CSS (2)- Pseudo-clases a
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 14/10/2009, 07:32
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cambiar color de texto con evento onMouseOver

Gracias a todos.

Antes de nada decir que estoy empezando en esto de la programacion web.

E conseguido algo de esta forma (por si a alguien le es útil) pero no consigo volverlos al color original. No es necesario js.

<script type="text/javascript">
function CambiaColor(texto,colo)
{

texto.style.color=colo;

}
</script>
</head>
<body>
<a id="texto1" onMouseOver="CambiaColor(document.getElementById(' texto2')">opción 1</a>
<a id="texto2" onMouseOver="CambiaColor(document.getElementById(' texto1'))">opción 2</a>
</body
></html>
  #6 (permalink)  
Antiguo 14/10/2009, 07:34
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cambiar color de texto con evento onMouseOver

Perdon el codigo tiene un error en la funcion.

<script type="text/javascript">
function CambiaColor(texto)
{

texto.style.color="blue";

}
</script>
</head>
<body>
<a id="texto1" onMouseOver="CambiaColor(document.getElementById(' texto2')">opción 1</a>
<a id="texto2" onMouseOver="CambiaColor(document.getElementById(' texto1'))">opción 2</a>
</body
></html>
  #7 (permalink)  
Antiguo 14/10/2009, 08:41
Avatar de alexk
Colaborador
 
Fecha de Ingreso: julio-2009
Ubicación: De vuelta al trono
Mensajes: 1.698
Antigüedad: 14 años, 9 meses
Puntos: 137
Respuesta: Cambiar color de texto con evento onMouseOver

Cita:
No es necesario js
Código:
<script type="text/javascript">
function CambiaColor(texto)
{

texto.style.color="blue";

}
</script>
</head>
<body>
<a id="texto1" onMouseOver="CambiaColor(document.getElementById(' texto2')">opción 1</a>
<a id="texto2" onMouseOver="CambiaColor(document.getElementById(' texto1'))">opción 2</a>
</body
></html>
no soy bueno en matematicas ni en JS... pero por que no ves el mensaje de

kseso? #2
__________________
Toroflix - movies.
  #8 (permalink)  
Antiguo 15/10/2009, 10:28
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cambiar color de texto con evento onMouseOver

el mensaje de kseso? ya lo he visto sr alexk pero no es lo que estoy buscando. Si lees el primer mensaje puedes ver que lo que quiero es que al pasar por encima de un texto cambie de color y lo mantenga hasta que el ratón se situe en otro texto y no al salir de encima del texto. He conseguido un efecto que se acerca al final por si a alguien le es útil pero ahora me falta que vuelvan al color original.

<script type="text/javascript" language="javascript">
function CambiaColor(etiqueta)
{
if (etiqueta.style.color=="blue"){
etiqueta.style.color="black";
}
else{
if (etiqueta.style.color=="black"){
etiqueta.style.color="blue";
}
}
}
</script>
</head>
<body>
<a id="texto1" style="color:black" onMouseOver="CambiaColor(this)">opción 1</a>
<a id="texto2" style="color:black" onMouseOver="CambiaColor(this)">opción 2</a>
<a id="texto3" style="color:black" onMouseOver="CambiaColor(this)">opción 3</a>


Gracias a todos.
  #9 (permalink)  
Antiguo 15/10/2009, 10:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cambiar color de texto con evento onMouseOver

Ya tengo la solucion al problema.

Gracias a todos.

Os la dejo por si a alguien le hace falta.

<script type="text/javascript" language="javascript">

function CambiaColor(etiqueta)
{
for (x=1;x<4;x++){
document.getElementById('texto'+x).style.color="bl ack"
}
if (etiqueta.style.color=="blue"){
etiqueta.style.color="black";
}
else{
if (etiqueta.style.color=="black"){
etiqueta.style.color="blue";
}
}
}
</script>
  #10 (permalink)  
Antiguo 15/10/2009, 11:01
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Cambiar color de texto con evento onMouseOver

Osea lo que vos queres es que cuando pases por una opcion, la otra vuelva a su color original? Por que no usas mejor el evento onmouse out de la etiqueta?
Aunque lo mejor es usar Css, como dijeron en el post numero 2.

Saludos.
  #11 (permalink)  
Antiguo 15/10/2009, 11:15
Avatar de alexk
Colaborador
 
Fecha de Ingreso: julio-2009
Ubicación: De vuelta al trono
Mensajes: 1.698
Antigüedad: 14 años, 9 meses
Puntos: 137
Respuesta: Cambiar color de texto con evento onMouseOver

eso es JS... si preguntas en CSS que no te sorprenda recibir soluciones en CSS...
Código javascript:
Ver original
  1. function CambiaColor(etiqueta)
  2. {
  3.     for(i=1;i<=3;i++){
  4.     id = document.getElementById('texto'+i);
  5.         if(i!=etiqueta){
  6.         id.style.color="black";
  7.         }
  8.         else{
  9.         id.style.color="blue";
  10.         }
  11.     }
  12. }
Código html:
Ver original
  1. <a id="texto1" onMouseOver="CambiaColor(1)">opción 1</a>
  2. <a id="texto2" onMouseOver="CambiaColor(2)">opción 2</a>
  3. <a id="texto3" onMouseOver="CambiaColor(3)">opción 3</a>
chao y suerte



EDITO: ups no habia visto que lo solucionaste que bueno chao!.... XD
__________________
Toroflix - movies.
  #12 (permalink)  
Antiguo 15/10/2009, 15:27
Avatar de jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 21 años, 10 meses
Puntos: 361
Respuesta: Cambiar color de texto con evento onMouseOver

Hola:

Cita:
Iniciado por alexk Ver Mensaje
si preguntas en CSS que no te sorprenda recibir soluciones en CSS
Pero pregunta en (X)HTML. ¡¡Despistado!!

pekychery ¿Te has preguntado que pasaría si un usuario tuviera desactivado el Javascript en su navegador?

Saludos.

  #13 (permalink)  
Antiguo 15/10/2009, 15:46
Avatar de alexk
Colaborador
 
Fecha de Ingreso: julio-2009
Ubicación: De vuelta al trono
Mensajes: 1.698
Antigüedad: 14 años, 9 meses
Puntos: 137
Respuesta: Cambiar color de texto con evento onMouseOver

Cita:
Iniciado por jomaruro Ver Mensaje
Hola:
Pero pregunta en (X)HTML. ¡¡Despistado!!
jajaja es verda... es la costumbre pocas veces me paso por estos lares jaja...!!!
__________________
Toroflix - movies.
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 13:16.