Search code examples
jqueryimagefade

jQuery Change Image src with Fade Effect


I'm trying to create an effect where you click on a thumbnail image, and the link to the thumbnail will replace the main image, but fade it in. This is the code I'm currently using:

$(".thumbs a").click(function(e) {
    e.preventDefault();
    $imgURL = $(this).attr("href");
    $(".boat_listing .mainGallery").fadeIn(400, function() {
        $(".boat_listing .mainGallery").attr('src',$imgURL);
    });
});

This works and replaces the image without a fade effect. What do I need to change to get the fadeIn effect to work?


Solution

  • You have to make it fadeOut() first, or hide it.

    Try this :

    $(".thumbs a").click(function(e) {
        e.preventDefault();
        $imgURL = $(this).attr("href");
        $(".boat_listing .mainGallery")
            .fadeOut(400, function() {
                $(".boat_listing .mainGallery").attr('src',$imgURL);
            })
            .fadeIn(400);
    });
    

    It should fadeOut the image, then change the src when it's hidden, and then fadeIn.

    Here's a jsFiddle example.

    Edit: you can find a more recent & better solution in Sandeep Pal's anwser