Ecco cosa sto cercando di fare. Ho una griglia con un sacco di immagini, quindi sto usando le immagini della libreria caricata insieme alla muratura.Eventi in muratura: chiama evento dopo immagini scaricato e layout completo
Ecco la mia CSS:
.grid {
opacity:0;
}
E 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>
Ed è qui la mia 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});
});
});
Il mio obiettivo è quello di avere la griglia di nascosto fino a quando tutte le immagini sono di carico e il layout è completo, quindi lo si dissolve. Per qualche motivo nel mio codice sopra, non entrerà mai nel layout onCom blocco completo.
Se sposto quel blocco fuori da imagesLoaded, $ container.masonry non è definito in quel punto.
Qualche idea?
Se si modifica l'opacità della griglia a 1 si può vedere tutto è sempre disposto bene. Sto solo cercando di capire come ottenere il layout Completo di chiamare per impostare l'opacità su 1.
Questo sembra funzionare in violino, ma sembra strano per me. Sembra possibile che 'console.log' si accenda dopo che le immagini sono state caricate ma prima che la muratura sia terminata. Dovrò testare con immagini più grandi e più grandi. – Corey
Consiglierei un numero maggiore di immagini nel test perché dubito che le dimensioni dell'immagine influenzeranno la muratura poiché saranno già caricate – jumojer
Dopo alcune ricerche, non ho trovato alcuna prova che la chiamata alla muratura() sia non bloccante . Ciò significherebbe che la funzione viene eseguita fino al termine del layout. Quindi, ogni volta, l'animazione verrà eseguita dopo che il layout è stato eseguito con il codice che ho fornito. – jumojer