如何在Isotope中使用动态容器?

时间:2013-02-16 08:33:01

标签: jquery css jquery-masonry jquery-isotope

在Web应用程序的不同部分重用同位素容器的上下文中,我需要调整容器的大小。但是,在为小布局添加和删除CSS类之后,容器不再占用整个空间。

参见JSFiddle:http://jsfiddle.net/mulderp/ptLzx/5/

$container.addClass('small');

按预期调整容器大小。

 $container.removeClass('small');
 $container.isotope('shuffle');

预计将取回原始容器。这不起作用。

有关如何使设置正常工作的任何线索?

1 个答案:

答案 0 :(得分:1)

这看起来像是一个时间问题,这种情况在Isotope上会发生很多。

如果你在一个shuffle方法周围放置一个1000ms的setTimeout()就可以了 - 因此确认问题......

$('#large').click(function(){
    $container.removeClass('small');
    var timer = setTimeout(function(){
        $container.isotope('shuffle');      
    },1000);
});

超时根本不理想,但它确实说明了Isotope需要在更新之前完成。我建议您使用不同的计时器进行测试,直到找到合适的结果。

我还建议您使用$container.isotope('reLayout')而不是$container.isotope('shuffle'),除非您特别需要对项目进行随机播放,因此创建该方法是为了完成此操作。