0

我想在 .content 元素之前附加 .item 元素,但它只是从以前的位置删除 .item 并在 .content 之前附加。

我想要的是使用一些动画,将 .item 元素从其原始位置缓慢移除并缓慢出现在其新位置上。我该怎么做?

$Item = $('.item');
$('.content').before($Item);

问候。

4

4 回答 4

2

像这样的东西怎么样:

$Item = $('.item');
$Item.fadeOut(1000, function() {
   $('.content').before($Item);
   $Item.fadeIn(1000);
}

.fadeOut()方法在指定的时间内(以毫秒为单位)淡化元素,并在完成时调用该函数,然后移动元素并将其淡入。

演示:http: //jsfiddle.net/9gGAT/5/

于 2012-06-25T07:10:39.093 回答
1

也可以使用jquery的and-方法来实现滑动效果hideshow我还将转换打包在它自己的方法中,以便可以重复使用,因此您不必多次编写相同的代码。

var smoothLikeSilk = function(mover, before) {
     $item = $(mover);
     $content = $(before);
   $item.hide('slow', function() {
     $content.before($item);
     $item.show('slow');
   });
}

$(function(){

  $('#btnMove').on('click',function(){
    smoothLikeSilk('.item', '.content');
  });

});

http://jsfiddle.net/9gGAT/6/

于 2012-06-25T07:16:26.383 回答
0

你的意思是这样的: jsFiddl Link

于 2012-06-25T07:10:28.937 回答
0

试试这个,

$(function() {

    $('#btnMove').on('click', function() {
        $Item = $('.item').fadeOut('slow', function() {
            $('.content').before($Item);
             $Item.fadeIn('slow');
        })

        });

    });​

演示

于 2012-06-25T07:12:00.200 回答