所以这就是我想要做的。我有一个很多图像的网格,所以我使用图像加载库和砌体。砌体事件:在图像加载和布局完成后调用事件
这里是我的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});
});
});
我的目标是让电网隐藏,直到所有图像都加载并且布局已完成,然后淡入其中。出于某种原因,在我上面的代码中,它永远不会进入layoutcom完整的块。
如果我将该块移动到imagesLoaded之外,$ container.masonry未定义该点。
任何想法?
如果您更改网格的不透明度为1,你可以看到一切都越来越奠定了罚款。只是想弄清楚如何让layoutComplete调用将不透明度设置为1.
这似乎在捣鼓工作,但似乎奇怪了吧。看起来''console.log'可以在图像加载之后但砌体完成布局之前触发。我将不得不测试更多更大的图像。 – Corey 2015-07-27 17:10:58
我会在你的测试中推荐大量的图片,因为我怀疑图片尺寸会影响石工,因为他们已经加载 – jumojer 2015-07-27 18:59:43
经过一番研究,我还没有找到任何证据表明masonry()调用是非阻塞的。所以这意味着该函数会在布局完成之前执行。所以每一次,动画都会在布局完成后使用我提供的代码执行。 – jumojer 2015-07-28 13:56:23