我有一个有三列的百分比宽度容器。我给这些列固定宽度的排水沟这样:
width: -webkit-calc( 33.33% - 16px );
width: -moz-calc( 33.33% - 16px );
width: calc( 33.33% - 16px );
这是我的Masonry代码,我在调整窗口大小时更改了列数:
$( window ).load( function() {
var columns = 3,
setColumns = function() { columns = $( window ).width() > 959 ? 3 : $( window ).width() > 640 ? 2 : 1; };
setColumns();
$( window ).resize( setColumns );
$( '#main-posts' ).masonry({
itemSelector : '[class*=main-posts-]',
columnWidth : function( containerWidth ) { return containerWidth / columns; }
});
});
页面加载时列之间的装订线太大,但是在调整窗口大小时它们会自行修正。有人可以帮我解决这个问题吗?
以下是重新设计的链接,该链接处于开发阶段的早期阶段:http://keithpickering.net/redesign/
容器上的绿色背景只是为了帮助说明正在发生的事情。
谢谢你们。
答案 0 :(得分:5)
遇到同样的问题,在加载页面后调用layout方法解决了这个问题。不优雅,但它有效。
$(window).load(function(){
var $container = $('#container');
$container.masonry({
gutter: 0,
itemSelector : '.content-box',
columnWidth: ".grid-sizer",
isResizable: true,
});
/// call the layout method after all elements have been loaded
$container.masonry();
});