Jquery 如何在设置另一个元素的动画()时淡出()元素?

Jquery 如何在设置另一个元素的动画()时淡出()元素?,jquery,css,Jquery,Css,我有一个元素列表,每个元素上都有一个移除按钮,我试图让移除按钮淡出元素,同时兄弟元素移到顶部。问题是,当我单击“移除”时,相关元素会消失,但兄弟姐妹不会移动,他们只是在没有动画的情况下更改位置。当上面的元素消失时,我如何使它们向上移动。以下是JSFIDLE: 代码如下: $('div').click(function() { $element = $(this); var height = $element.height(); $element.fadeOut(4

我有一个元素列表,每个元素上都有一个移除按钮,我试图让移除按钮淡出元素,同时兄弟元素移到顶部。问题是,当我单击“移除”时,相关元素会消失,但兄弟姐妹不会移动,他们只是在没有动画的情况下更改位置。当上面的元素消失时,我如何使它们向上移动。以下是JSFIDLE:

代码如下:

$('div').click(function() {
    $element = $(this);    
    var height = $element.height();
    $element.fadeOut(400);
    $element.next().animate({top:'-=' + height + 'px'});
});
谢谢大家!

编辑: 有些人建议使用slideUp,谢谢你,它很有效,但是有没有办法在其他人滑动时使元素褪色

$element.fadeOut();
$element.slideUp();

不起作用。

slideUp
可以。我在这里附上了一个样品

slideUp
就可以了。我在这里附上了一个样品

根据Neta的建议,您应该改用slideUp():


正如Neta所建议的,您应该改用slideUp():


top属性不适用于默认情况下具有静态位置的图元top属性不适用于默认情况下具有静态位置的图元
$('div').click(function() {
    $(this).slideUp();
});