我使用jquery'fadeOut()'删除了一个div元素,问题是:当我删除一个元素时,其下的其他元素在没有转换的情况下上升并且看起来太突然了。不知道如何解决它。如果我把css上的转换放到类.publication中,jQuery的fadeOut()就会停止正常工作并且也会突然删除这些元素。
我该怎么做?
编辑:抱歉英语不好......EDIT2:这是我的问题的Jsfiddle:
jsfiddle code
答案 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 确保元素不再影响页面布局。
希望这有帮助!
答案 1 :(得分:0)
嘿,你可以使用opacity:0;
,然后使用slideUp()
,这会产生预期的效果....
请参阅以下JSFiddle。