0

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

请参阅 JSFiddle:http: //jsfiddle.net/mulderp/ptLzx/5/

$container.addClass('small');

这会按预期调整容器的大小。

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

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

任何线索如何让设置工作?

4

1 回答 1

1

这看起来像是一个时间问题,这往往发生在同位素中。

如果您在 shuffle 方法周围放置一个 1000 毫秒的 setTimeout() ,它就可以工作 - 因此确认问题......

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

超时一点也不理想,但它确实说明了同位素需要在更新之前完成。我建议使用不同的计时器进行测试,直到你找到合适的。

我还建议使用$container.isotope('reLayout')over ,$container.isotope('shuffle')除非您特别需要对项目进行洗牌,该方法正是为此而创建的。

于 2013-02-16T13:08:36.937 回答