0

我写了一个小的 jquery 内容过滤器: jsfiddle

例如,如果我在“gfx”和“coding”之间切换,我会在红色父 div 上得到这种丑陋的高度调整效果。我的目标是在同一个地方淡出小 div。无需任何调整大小且不使用固定高度。(项目数量以后可能会有所不同)

有什么提示我可以做到这一点吗?

var filter = $(this).attr('data-filter');
$('#filter_container .filteritem:not(' + filter + ')').fadeOut('slow', function () {
    $('#filter_container ' + filter + '').fadeIn('fast');
});

有关详细信息和工作示例,请参阅 jsfiddle。

4

1 回答 1

0

http://jsfiddle.net/k6BPs/8/

显然为每个元素调用了 fadeOut() 回调。见这里。这样,它会立即被触发,防止在fadeOut() 之后产生漂亮的fadeIn() 效果。

.promise()不过,您可以通过使用and.done(function(){})方法来克服这个问题。

于 2013-03-07T22:47:48.273 回答