Foros del Web » Programando para Internet » Javascript »

OnMouseOver con los elementos de un select

Estas en el tema de OnMouseOver con los elementos de un select en el foro de Javascript en Foros del Web. Buenas, he buscado por el foro pero no he encontrado lo que buscaba. Lo que yo quiero hacer (que no sé si se puede) es ...
  #1 (permalink)  
Antiguo 01/02/2006, 10:31
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
OnMouseOver con los elementos de un select

Buenas, he buscado por el foro pero no he encontrado lo que buscaba. Lo que yo quiero hacer (que no sé si se puede) es cambiar una imagen según se pase el ratón sobre los diferentes elementos de un select (sin llegar a seleccionarlo).
¿Alguna ayuda?
  #2 (permalink)  
Antiguo 01/02/2006, 10:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Los option de los select dan muy poco juego, apenas se puede cambiar color y fuentes... y el select solo vale el evento onchange...

Me temo que no se puede... a ver si alguien sabe una respuesta "milagrosa"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 01/02/2006, 10:39
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Gracias Caricatos por tu rapidísima ayuda.
He conseguido hacer funcionar la cosa mínimamente haciendo una prueba poniento el evento OnMouseOver en el Select.
Código:
<SCRIPT>
function cambia(id)
{
     with( formulario )
     {
          campo.value = parseInt(campo.value) + 1;
     }
}
</SCRIPT>
<SELECT NAME="seleccion" SIZE="1" ONMOUSEOVER="cambia(this.value)">
</SELECT>
Ahora bien, no sé muy bien cómo hacer para que me cambie de imagen. He leido en el foro que lo mejor es hacer una precarga de las imagenes (no son muchas. Unas 40). Hasta ahí ningún problema. Pero cómo le hago saber al javascript qué imagen debe cargar si el atributo VALUE ya lo tengo 'ocupado' con otro valor?

Última edición por jerkan; 01/02/2006 a las 11:03
  #4 (permalink)  
Antiguo 01/02/2006, 11:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

No dejes de poner el código para que sepamos la respuesta (me extraña que lo hayas arreglado)...

Bueno, con respecto a las imágenes, puedes crear un array asociativo con el value de tus options como índice...

var imagen = new Array();
imagen["opcion1"] = "imagen1.gif";
imagen["opcion2"] = "imagen2.gif";
imagen["opcion3"] = "imagen3.gif";

y luego a partir de ese value:

document.images["muestra"].src = imagen[elValue];

Si tienes problemas en implementarlo, avisa.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 01/02/2006, 11:12
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
El caso es que tengo las imagenes en una base de datos y no sé cómo hacerlo. Se me ocurre que en el evento onload del BODY podría cargar las imagenes pero no sé como comunicar el PHP y el javascript.
  #6 (permalink)  
Antiguo 01/02/2006, 11:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Entre php y javascript, solo puedes comunicarte con ajax, pero para este caso no creo que te sirva... pero tendrás un visor de las imagenes de la base de datos (como imagen.php)

Yo tengo uno así, y con el parámetro id la puedo mostrar...

imagen["opcion1"] = "imagen.php?id=1";
Si las quieres precargar, puedes encontrar la forma en las FAQs javascript

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 02/02/2006, 02:41
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Excelente ayuda, Caricatos. Gracias. Ya casi lo tengo. Ahora tengo un poltergeist 'guapo'. Primero posteo el código:
Código:
</SCRIPT>
function cambiaImagen(idArticulo)
{
	document.getElementById("imagenMarca").src = "showImage.php?id=" + idArticulo
}
		
</SCRIPT>

<IMG ID="imagenMarca" SRC="sinImagen.jpg">

<FORM>
<SELECT NAME="seleccion" SIZE="1" ONMOUSEOVER="cambiaImagen(this.value)">
				
	<OPTION></OPTION>
<?php
	foreach( $listaArticulos as $parArticulo )
	{
		echo("<OPTION VALUE='".$parArticulo[0]."'>".$parArticulo[1]."</OPTION>");
	}
?>
</SELECT>
</FORM>
El comportamiento del poltergeist es el siguiente. Cuando situo el ratón sobre un elemento del select no se carga su imagen correspondiente. Sin embargo, la carga cuando situo el curso sobre otro elemento del select. Y así sucesivamente. Vamos, que tengo un select un poco retarded.
¿A alguien se le ocurre por qué pasa esto?
  #8 (permalink)  
Antiguo 02/02/2006, 06:13
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Solucionado. Conseguí mi propósito poniendo el manejador de evento en los tag OPTION en vez de en el SELECT.
Código:
<SELECT NAME="seleccion" SIZE="1">
				
	<OPTION ONMOUSEOVER="cambiaImagen(this.value)"></OPTION>
<?php
	foreach( $listaArticulos as $parArticulo )
	{
		echo("<OPTION VALUE='".$parArticulo[0]."' ONMOUSEOVER='cambiaImagen(this.value)'>".$parArticulo[1]."</OPTION>");
	}
?>
</SELECT>
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 23:15.