我写了一个小jquery内容过滤器: jsfiddle
如果我在“gfx”和“编码”之间切换,例如我在红色父div上获得了这个丑陋的高度重新设定效果。 我的目标是在同一个地方褪去那些小屁股。没有任何尺寸调整,也没有使用固定高度。 (项目数量可能会有所不同)
任何提示我如何才能实现这一目标?
var filter = $(this).attr('data-filter');
$('#filter_container .filteritem:not(' + filter + ')').fadeOut('slow', function () {
$('#filter_container ' + filter + '').fadeIn('fast');
});
有关详细信息和工作示例,请参阅jsfiddle。
答案 0 :(得分:0)
显然,每个元素都会调用fadeOut()回调。 See here。这样就会立即触发它,防止在fadeOut()之后产生一个漂亮的fadeIn()效果。
您可以使用.promise()
和.done(function(){})
方法解决此问题。