Jquery 砌体运行';页面渲染太晚了

Jquery 砌体运行';页面渲染太晚了,jquery,jquery-masonry,Jquery,Jquery Masonry,我已经在这方面做了很多,并且在很多项目中使用了砖石结构。我被难住了 我将包含CSS的元素设置为: #content.video-grid { margin: 0 auto; overflow: hidden; } 对于给定此CSS的每个砖块: .grid-block { float: left; height: 220px; width: 240px; overflow: hidden; padding: 0 0 20px 0; } 我

我已经在这方面做了很多,并且在很多项目中使用了砖石结构。我被难住了

我将包含CSS的元素设置为:

#content.video-grid {
    margin: 0 auto;
    overflow: hidden;
}
对于给定此CSS的每个砖块:

.grid-block {
    float: left;
    height: 220px;
    width: 240px;
    overflow: hidden;
    padding: 0 0 20px 0;
}
我们这样称呼:

    jQuery('#content.video-grid').masonry({
        itemSelector : '.grid-block',
        columnWidth : 240,
        isAnimated: true,
        isFitWidth: true,
        gutterWidth: 2
    });    
加载页面后,这应该不会导致砖块的“洗牌”,但出于某种原因,它会等待所有内容加载完毕,然后按照isFitWidth的指示将宽度应用于包含的元素

在这里,它不起作用:

以下是相同的实现:

所以一定是有什么原因导致砖石工程延误了,但我一直无法弄清楚。为了清楚起见,我希望在加载图像之前运行砖石结构,以便在加载图像之前砖块位于正确的位置


谢谢

您是否尝试将代码包装成:

$(窗口).load(函数(){

}));

?


不确定它是否适用于您的情况。

是的,但这并不能解决我的问题。加载页面后,它会正确地获取所有内容的间距。加载页面时,我希望它的间距正确。由于图像宽度并不决定每个砖的宽度,因此在加载页面时,图像宽度应该起作用。
$('img').load(function(){
    $('#container').masonry();
});