如何淡出图像,然后让它出现在jquery的另一个位置?

时间:2012-04-28 13:27:09

标签: javascript jquery

我的图像在某个div处,它的z-index是最高的

当我点击某些东西时,我希望它淡出,然后淡入另一个指定的位置。在另一个类的图像下方:)这是一个“aaa”类。

我这样做:

          $('img.classy').fadeOut();
          $('img.classy').css('top',$(el).find('img.aaa:last').height()+60);
          $('img.classy').fadeIn();

它嵌入了点击事件。当我运行它并单击该区域时,img.classy首先改变它的位置,然后在新的位置它淡出并淡入。我显然想要这样做:淡出 - >不可见时改变位置 - > fadein在新的位置。怎么做?

3 个答案:

答案 0 :(得分:1)

这样做:

$('img.classy').fadeOut(function() {
    $('img.classy').css('top',$(el).find('img.aaa:last').height()+60);
    $('img.classy').fadeIn();
});

由于fadeOutfadeIn是异步函数,因此脚本会继续运行,导致img立即更改其位置。

答案 1 :(得分:0)

您需要等到fadeOut完成。我为你添加了一个回调函数。

$('img.classy').fadeOut('slow', function() {
    $(this).css('top',$(el).find('img.aaa:last').height()+60);
    $('img.classy').fadeIn();
});

答案 2 :(得分:0)

这将克隆img,删除它并附加一个anothor包装器:

   .aaa {position: relative}
   .classy {position: absolute; right:0; top:0}

    $('img.classy').fadeOut(
      cloned = $(this).clone(true);
      $(this).remove();
      $("img.aaa:last").append(cloned);
      $(".classy").fadeIn();
    );