Jquery Masonry: неправильные желоба, пока размер окна не будет изменен
У меня есть контейнер шириной в процентах с тремя столбцами. Я даю эти столбцы желобов фиксированной ширины следующим образом:
width: -webkit-calc( 33.33% - 16px );
width: -moz-calc( 33.33% - 16px );
width: calc( 33.33% - 16px );
Это мой код масонства, в котором я меняю количество столбцов при изменении размера окна:
$( 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/
Зеленый фон на контейнере просто для иллюстрации того, что происходит.
Спасибо, парни.
1 ответ
Возникла та же проблема, она была решена путем вызова метода макета после загрузки страницы. Не элегантно, но это работает.
$(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();
});