Jquery Masonry вопрос высоты - PullRequest
       3

Jquery Masonry вопрос высоты

12 голосов
/ 31 августа 2011

У меня есть простая сетка кладки. При загрузке класс .content виден. Когда вы перезагрузите , предметы перетекают друг к другу.

Это происходит только в Chrome и Safari, в Firefox это выглядит хорошо.

Вот CSS из сетки:

#media_list {} 
#media_list .media_item  {  height: auto; width: 270px; display: inline-block; background: #f4f4f4; border: 1px solid #d9d7d5; float: left; padding: 10px 0px 10px 0px; font: 11px Helvetica Neue; }
#media_list .media_item .date { color: white;  background: #2f343a; padding: 10px 5px; width: 260px; float: left; margin: 0px 0px 15px 0px;}
#media_list .media_item .content { padding: 15px; float: left; display: inline-block; margin-bottom: 20px; }
#media_list .media_item img { border: 1px solid #dedddd;  margin: 0px 0px 10px 10px; width: 248px;}

Вот как называется кладка:

$('#media_list').masonry({  // options
                            itemSelector : '.media_item',
                            columnWidth : 300
                         });

Я могу обойти это с min-height с и margin с, но это не динамично и не выглядит очень чисто.

Вот JS Fiddle , но это на самом деле не повторяет проблему.

Ответы [ 2 ]

35 голосов
/ 31 августа 2011

Кажется, вы уже используете перезагрузку. Возможно, потому что изображения обновляются при обновлении URL, а не при перезагрузке.

Попытка:

var $container = $('#media_list');
$container.imagesLoaded(function(){
  $container.masonry({
        itemSelector : '.media_item',
        columnWidth : 300,
        gutterWidth: 20
  });
});

в противном случае

$('#media_list').masonry({
    // options
    itemSelector : '.media_item',
    columnWidth : 300,
    gutterWidth: 20
}).masonry('reload');
9 голосов
/ 09 февраля 2014

Для лучшей совместимости, например, с Google Chrome, измените

var $container = $('#media_list');

на

$(window).load(function(){ $('#media_list').masonry(); });
...