Foros del Web » Creando para Internet » Diseño web »

efecto galeria imagenes onmouseover

Estas en el tema de efecto galeria imagenes onmouseover en el foro de Diseño web en Foros del Web. Hola, vuelvo a molestar porque estoy buscando un efecto que cambie una imagen por otras en forma secuencial mientras el mouse este onmouseover. Es decir, ...
  #1 (permalink)  
Antiguo 25/05/2012, 10:18
Avatar de edu007ar  
Fecha de Ingreso: septiembre-2003
Ubicación: Buenos Aires
Mensajes: 118
Antigüedad: 20 años, 6 meses
Puntos: 0
efecto galeria imagenes onmouseover

Hola, vuelvo a molestar porque estoy buscando un efecto que cambie una imagen por otras en forma secuencial mientras el mouse este onmouseover.

Es decir, mientras el mouse esta sobre una imagen que esta vaya cambiando cada segundo por otras imagenes de una lista y que vuelva a comenzar tipo bucle, pero que se frene cuando se quita el mouse de la imagen.

Intenté con este codigo que funciona perfecto pero no logro que se frene el efecto cuando salgo de la imagen, lo sigue haciendo indefinidamente.

Código:
<script>
function cambiar()
{
	var images = [
	 "002-1.jpg",
	 "003-1.jpg"
	 ];

	var counter = 0;
	setInterval(function() {
	$('#imagen').attr('src', images[counter]);
	 counter++;
	 if (counter == images.length) {
		 counter = 0;
	 }
	}, 1000);

}
}
</script>

<img src="001-1.jpg" id="imagen" onmouseover="javascript:cambiar();">

Para complicarlo un poco estaria bueno que la lista de imagenes esté en la llamada a la función, porque la idea es que haya muchas imagenes que hagan ese efecto mientras el mouse este posicionado arriba.

Gracias por cualquier ayuda!

Slds.
__________________
www.proavanz.com.ar
  #2 (permalink)  
Antiguo 31/05/2012, 03:11
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: efecto galeria imagenes onmouseover

Todo es sencillo con jquery

Código Javascript:
Ver original
  1. var cambiar = function(images){
  2.     var counter = 0;
  3.     setTimeout(function() {
  4.         $('#imagen').attr('src', images[counter]);
  5.         counter++;
  6.         if (counter == images.length) {
  7.          counter = 0;
  8.         }
  9.     }, 1000);
  10. };
  11.  
  12. $('#imagen').hover(
  13.     function(){ // Mouse en imagen
  14.     var images = [
  15.      "002-1.jpg",
  16.      "003-1.jpg"
  17.      ];
  18.          cambiar(images);
  19.     },
  20.     function(){ // Mouse fuera de imagen
  21.         clearTimeout(); // Cancela el setTimeout
  22.     }
  23. );

Hay mejores maneras de hacer lo que haces, pero bueno, al cliente lo que pida
  #3 (permalink)  
Antiguo 07/07/2012, 07:28
 
Fecha de Ingreso: julio-2012
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: efecto galeria imagenes onmouseover

Hola danneg,
muchas gracias por poner el codigo en jquery para hacer la galeria. Yo tengo que hacer lo mismo para una pagina. Una serie de imagenes que, cuando el cursor se ponga encima de una imagen, cualquiera, empiecen a aparecer imagenes,volviendose al principio y asi sucesivamente. Cuando se quite el raton, debe de volver a la imagen original.

Soy bastante novato en jquery y, tras un buen rato mirando foros y manuales, no he logrado echar a andar este efecto de rollover multiple, si se podria llamar asi :). Cuando pones en el codigo javascript lo siguiente:

'#imagen'

esto hace referencia al id de la imagen que se ponga en el <body></body>?
Yo tengo puesto en mi body el siguiente fragmento de codigo:

<img src="images/foto1.jpg" alt="imagen" id="imagen" class="imagen" width="200" height="200"/>

pero no se si asi se podria activar el evento hecho con jquery. No consigo hacerlo andar :S

Agradeceria enormemente tu ayuda :)

Un saludo y disculpas si he cometido muchos errores jejeje
  #4 (permalink)  
Antiguo 02/08/2012, 15:45
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: efecto galeria imagenes onmouseover

Hola, pues el mismo codigo que esta arriba te funciona perfectamente.

Te recuerdo que jQuery utiliza los mismos selectores que usa CSS, así que cuando llamas #imagen, esta obviamente llama a la imagen con id imagen (recuerda que el id es unico, si necesitas mas imágenes con este efecto, utiliza class. ej .imagen).

Código Javascript:
Ver original
  1. var cambiar = function(images){ //En el parametro se pasan las imagenes que mostrara
  2.     var counter = 0; //Indica que inicia desde la primera imagen
  3.     setTimeout(function() { //Inicia un temporizador
  4.         $('#imagen').attr('src', images[counter]); //cambia la imagen segun el valor de counter
  5.         counter++; //Suma uno a counter para cambiar las imagenes
  6.         if (counter == images.length) { //Si counter es mas grande al numero de imagenes que tienes...
  7.          counter = 0; //Regresas a la primera
  8.         }
  9.     }, 1000); //Repetir esto cada 10 segundos
  10. },
  11. imgoriginal = $('#imagen').attr('src'); //Guarda imagen original
  12.  
  13. $('#imagen').hover( //Evento hover
  14.     function(){ // Mouse en imagen
  15.         var images = [ //Imagenes que se mosttraran
  16.              "002-1.jpg",
  17.              "003-1.jpg"
  18.          ];
  19.          cambiar(images);
  20.     },
  21.     function(){ // Mouse fuera de imagen
  22.         clearTimeout(); // Cancela el setTimeout
  23.         $('#imagen').attr('src', imgoriginal); //Regresa a imagen original
  24.     }
  25. );

Etiquetas: efecto, galeria, imagenes, onmouseover
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 07:40.