Jquery砌体高度问题

pap*_*tas 12 css jquery jquery-masonry

我有一个简单的砖石网格.当它加载时,.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;}
Run Code Online (Sandbox Code Playgroud)

这就是砌筑的方式:

$('#media_list').masonry({  // options
                            itemSelector : '.media_item',
                            columnWidth : 300
                         });
Run Code Online (Sandbox Code Playgroud)

我可以用min-heights和margins 解决它,但这不是动态的,看起来不是很干净.

这是一个JS小提琴,但它并没有真正复制这个问题.

Mar*_*sen 36

似乎你已经使用了重新加载.也许是因为图像重新加载URL刷新而不是重新加载.

尝试:

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

除此以外

$('#media_list').masonry({
    // options
    itemSelector : '.media_item',
    columnWidth : 300,
    gutterWidth: 20
}).masonry('reload');
Run Code Online (Sandbox Code Playgroud)

  • 我不知道imagesLoaded插件 - 谢谢你!有关该插件的更多信息,请访问:http://metafizzy.co/blog/imagesloaded-plugin/ (3认同)

小智 9

例如,为了更好地与Google Chrome兼容,请进行更改

var $container = $('#media_list');
Run Code Online (Sandbox Code Playgroud)

$(window).load(function(){ $('#media_list').masonry(); });
Run Code Online (Sandbox Code Playgroud)