【发布时间】:2011-07-11 11:57:45
【问题描述】:
对于我的一生,我无法弄清楚到底发生了什么。我缺乏 Jquery 知识可能与它有关......
看看这个:http://jsfiddle.net/ryanjay/fgNMJ/
当页面加载时,每张照片之间在高度上都会有很大的差距。当您单击一张照片并展开时,底部的照片会恢复原位。当再次单击照片以将其折叠时,照片会按照加载页面时的位置放置。有道理?
为什么加载页面时照片之间在高度方面存在间隙?我假设它与我正在进行的 (.box img).css() 代码有关......但我就是想不通。
这里也是代码。
jquery:
$(document).ready(function(){
$('#grid').masonry({
singleMode: false,
itemSelector: '.box',
resizeable: true,
animate: true
});
$('.box img').css({
width: '100%',
height: 'auto'
});
$('.box').click(function(){
if ($(this).is('.expanded')){
restoreBoxes();
} else {
$(this)
// save original box size
.data('size', [ $(this).width(), $(this).height() ])
.animate({
width: 400
}, function(){
$('#grid').masonry();
});
restoreBoxes();
$(this).addClass('expanded');
}
function restoreBoxes(){
var len = $('.expanded').length - 1;
$('.expanded').each(function(i){
var w = $(this).data('width');
$(this).animate({
width: ( w || '200' )
}, function(){
if (i >= len) {
$('#grid').masonry();
}
})
.removeClass('expanded');
});
}
});
});
CSS:
.wrap {
border: 0;
width: 100%;
}
.box {
float: left;
font-size: 11px;
width: 200px;
margin: 0px;
padding: 0px;
display: inline;
}
【问题讨论】: