jQuery Change Image src with Fade Effect

后端 未结 4 431
旧时难觅i
旧时难觅i 2020-12-04 22:04

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 curren

相关标签:
4条回答
  • 2020-12-04 22:16

    I reproduced the given samples above. It gives a strange flickering, which I found that it waits for image to load after it's opacity is restored to 1. I modified the code by Sandeep.

    $("#link").click(function() {
    
    $("#image").fadeTo(1000,0.30, function() {
      $("#image").attr("src",$("#link").attr("href"));
      $("#image").on('load', function(){
        $("#image").fadeTo(500,1);
      });
     });
     return false;
    });`
    
    0 讨论(0)
  • 2020-12-04 22:22

    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

    0 讨论(0)
  • 2020-12-04 22:29

    I thing instead of using FadeIn and fadeOut, its better to use fadeTo functionality as fadeIn and fadeOut created a time gap between them for few micro-seconds.

    I have used above code from Sylvain : thanks to him

    $("#link").click(function() {
    
      $("#image").fadeTo(1000,0.30, function() {
          $("#image").attr("src",$("#link").attr("href"));
      }).fadeTo(500,1);
      return false;
    });
    
    0 讨论(0)
  • 2020-12-04 22:35

    You cannot fade-in something that is already at 100% alpha :)

    In other words, you either fade it out or hide it, and then fade it in.

    I made this example, basically, I hide it and then fade it:

    http://jsfiddle.net/uGFMt/

    0 讨论(0)
提交回复
热议问题