所以这就是我想要做的。我有一个包含很多图像的网格,所以我将 imagesLoaded 库与砖石一起使用。
这是我的CSS:
.grid {
opacity:0;
}
和 HTML:
<div class="grid">
<div class="grid-sizer"></div>
<div class="gutter-sizer"></div>
<div class="item">image</div>
<div class="item">image</div>
<div class="item">image</div>
</div>
这是我的 JS:
var $container = $('.grid');
// initialize Masonry after all images have loaded
$container.imagesLoaded( function() {
$container.masonry({
columnWidth: '.grid-sizer',
itemSelector: '.item',
gutter: '.gutter-sizer'
});
$container.masonry('on', 'layoutComplete', function(){
console.log('got here');
$container.animate({'opacity':1});
});
});
我的目标是隐藏网格,直到所有图像都加载并且布局完成,然后将其淡入。由于某些原因,在我上面的代码中,它永远不会进入 on layoutComplete 块。
如果我将该块移到 imagesLoaded 之外,则 $container.masonry 在那一点上是未定义的。
有任何想法吗?
如果您将网格不透明度更改为 1,您可以看到一切都布置得很好。只是想弄清楚如何让 layoutComplete 调用以将不透明度设置为 1。