上部消失时如何应用div运动的过渡?

时间:2014-01-30 18:17:38

标签: css html transitions

我使用jquery'fadeOut()'删除了一个div元素,问题是:当我删除一个元素时,其下的其他元素在没有转换的情况下上升并且看起来太突然了。不知道如何解决它。如果我把css上的转换放到类.publication中,jQuery的fadeOut()就会停止正常工作并且也会突然删除这些元素。

我该怎么做?

编辑:抱歉英语不好......

EDIT2:这是我的问题的Jsfiddle:

jsfiddle code

http://jsfiddle.net/zberQ/

2 个答案:

答案 0 :(得分:0)

您可以使用slideUp()

您也可以使用hide(500),但我个人更喜欢slideUp(500)效果。

$('#yourelement').slideUp(500);

它也应该为所有其他元素设置动画。

根据您的评论,您还可以使用.animate()创建所需的自定义动画:

.animate({'height':'0','opacity':'0'});//in your specific case - $(this).parent().parent().animate({'height':'0','opacity':'0'});

甚至使用delay()创建动画的序列:

.animate({'opacity':'0.2'}).delay(50).animate({'height':'0','opacity':'0'});

您遇到的问题是fadeOut()行为的结果。 fadeOut()将不透明度设置为0,然后当它达到0时,设置display:none;,使所有元素向上跳跃,向下填充空白空间。 来自jQuery文档:

  

.fadeOut()方法可以设置匹配元素的不透明度。   一旦不透明度达到0,显示样式属性将设置为none,   所以元素不再影响页面的布局。

slideUp()首先激活高度,导致平滑消失,而不是设置display:none;。摘自jQuery文档:

  

.slideUp()方法动画匹配元素的高度。   这会导致页面的下半部分向上滑动,似乎隐藏起来   这几项。一旦高度达到0(或者,如果设置,则为CSS   min-height属性是),显示样式属性设置为none   确保元素不再影响页面布局。

JSFiddle

希望这有帮助!

答案 1 :(得分:0)

嘿,你可以使用opacity:0;,然后使用slideUp(),这会产生预期的效果....

请参阅以下JSFiddle