【发布时间】:2011-09-03 01:39:51
【问题描述】:
我正在学习使用Isotope,偶然发现了作者关于如何使用animate item sizes 的博文。
我已经为我正在开发的项目实现了这一点。它由三个垂直列组成。每个项目为 196 像素 x 70 像素。当你点击一个项目时,它会扩大到 402px x 230px。
所有项目都正确调整大小并导致 Isotope 刷新布局——除了第一个项目。
单击第一项会导致所有后续列表项仅在一个垂直列中排列 - 即使有足够的空间并且项目应该围绕第一项流动。
单击列表中的任何其他项目都会导致正确的行为。只有第一个是不稳定的。任何人都可以看到可能导致这种情况的原因吗?
这是我的测试用例:http://joshrenaud.com/pd/testcase/testcase.html
处理这种调整大小的代码如下所示:
$('.child').click(function(){
var $this = $(this);
if ($this.hasClass('big')) {
tileStyle = { width: 196, height: 70};
}
else {
tileStyle = { width: 402, height: 230};
}
$this.children().children('.childDate').toggle();
$this.children().children('.childDesc').toggle();
$this.toggleClass('big');
$this.find('.child-content').stop().animate( tileStyle );
$('#container').isotope( 'reLayout' )
});
【问题讨论】:
-
我应该指出,无论哪个项目是列表中的第一个,都会发生这种行为。在我的实际原型代码中,我可以选择按不同标准对列表进行排序。排序后,先到先得的都会有这种感觉。
标签: javascript jquery jquery-masonry