Foros del Web » Programando para Internet » Javascript »

Cambio de imagen en hover, efecto fadeIn

Estas en el tema de Cambio de imagen en hover, efecto fadeIn en el foro de Javascript en Foros del Web. Saludos! Quiero hacer un pequeño efecto con un cambio de imagen a través de javascript. En principio el siguiente código me funciona, pero me da ...
  #1 (permalink)  
Antiguo 18/12/2013, 07:51
 
Fecha de Ingreso: julio-2010
Mensajes: 116
Antigüedad: 14 años, 4 meses
Puntos: 0
Cambio de imagen en hover, efecto fadeIn

Saludos!

Quiero hacer un pequeño efecto con un cambio de imagen a través de javascript. En principio el siguiente código me funciona, pero me da algúnos problemas:
En firefox, no se cambia la imagen, ésta simplemente parpadea haciendo el efecto de fadeIn y fadeOut.
Y el problema más grande, es que la transición es muy lenta (en el resto de navegadores que funciona). Queda demasiado rato la zona sin ninguna imagen mostrada. He mirado la documentación, y en principio con un valor de "1", tendría que hacer un cambio rapidisimo. Es posible que esté afectando el .load?

Gracias de antemano!

Os pongo el código que estoy utilizando


Código:
function h_gourmet() {
  $("#img_gourmet").fadeOut("1",function() { 
  $(this).attr("src", "img/gourmet_hover.jpg");
  $(this).load(function() { $(this).fadeIn("1"); }); 
   
});
Código HTML:
<div id="carousel">
	<ul>
	 <li class="mask">			
		<img alt="" src="img/gourmet.jpg" onmouseover="this.src='img/gourmet_hover.jpg'" onmouseout="this.src='img/gourmet.jpg'" width="275" height="185" /> 
	</li>
</ul> 
  #2 (permalink)  
Antiguo 30/12/2013, 04:17
 
Fecha de Ingreso: julio-2010
Mensajes: 116
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Cambio de imagen en hover, efecto fadeIn

Muy buenas

Sigo necesitando un poquito de ayuda. He estado buscando y probando y sigo estancado igual

Nadie ha intentado hacer esto nunca?

Un saludo!
  #3 (permalink)  
Antiguo 30/12/2013, 10:06
Avatar de moriorGames  
Fecha de Ingreso: diciembre-2013
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: Cambio de imagen en hover, efecto fadeIn

Hola compañero, no entiendo muy bien lo que quieres hacer pero me da la sensación que sí puedes hacer lo que pides. Hacer fadein o fadeout con javascript debería ser algo bastante trivial, ya sea en hover o click o lo que sea. Te dejo un código rápido que he hecho, he probado y funciona, mira a ver so lo puedes adaptar a lo tuyo.

Código PHP:
<!DOCTYPE html>
<
html>
    <
head>
        <
title>Prueba fade js</title>
        <
style>
            
div {
                
positionrelative;
                
overflowhidden;
                
height200px;
                
width200px;
            }
            
img {
                
positionabsolute;
            }
            
#image2 {
                
displaynone;
            }
        </
style>
    </
head>
    <
body>
    <
div id="hover">
        <
img id="image1" src="tuimagen1.jpg" />
        <
img id="image2" src="tuimagen2.jpg"/>
    </
div>

    <
script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $('#hover').hover(function(){
                $('#image1').fadeOut();
                $('#image2').fadeIn();
            }, function(){
                $('#image2').fadeOut();
                $('#image1').fadeIn();
            });
        });
    </script>
    </body>
</html> 
__________________
Mi juego de estrategia medieval si lo entras hazme llegar tu opinión por favor, siempre la tengo en cuenta.
  #4 (permalink)  
Antiguo 30/12/2013, 10:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambio de imagen en hover, efecto fadeIn

Trabaja con el método hover que realiza lo mismo que los eventos onmouseover y onmouseout.

Código Javascript:
Ver original
  1. $(".mask img").hover(function(){
  2.   var $img = $(this);
  3.   $img.fadeOut(800, function(){
  4.     $(this).prop("src", "imagen1.jpg");
  5.   }).fadeIn(800);
  6. }, function(){
  7.   var $img = $(this);
  8.   $img.fadeOut(800, function(){
  9.     $(this).prop("src", "imagen2.jpg");
  10.   }).fadeIn(800);
  11. });

Cuando se pose el puntero del mouse sobre la imagen, se ejecutará el método fadeOut que ocultará la imagen. Al término de esta acción, se cambiará la imagen por una nueva y finalmente, se vuelve a mostrar la imagen con el método fadeIn, pero con la nueva imagen de fondo. Cuando se retire el puntero del mouse de la imagen, se producirá lo mismo que al comienzo, con la diferencia que se intercambiará de imágenes, la antigua se restablecerá y la nueva se retirará. La transición dura 800 milésimas de segundo, pero puedes cambiar dicho valor.

Aquí puedes ver el ejemplo en acción.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 30/12/2013, 15:04
 
Fecha de Ingreso: julio-2010
Mensajes: 116
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Cambio de imagen en hover, efecto fadeIn

Muchas gracias, voy a intentar lo que me comentais

Etiquetas: efecto, fadein, funcion, hover
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 04:07.