2012-04-15 14 views
6

Così sto utilizzando l'isotopo masonry layout dijquery in altezza auto on elemento

$('section').isotope({itemSelector:'article',layoutMode:'masonry',transformsEnabled: false, animationEngine: 'jquery',masonry:{columnWidth:8}});

Il problema è che se non impostare l'altezza per il article in css, layout doesn Non mi sembra che gli oggetti si sovrappongano e roba, ma non posso impostare un'altezza fissa per gli elementi, dal momento che sono post di blog e possono cambiare dimensione, avete qualche suggerimento su come risolvere questo problema?

risposta

23

Problema risolto, è necessario chiamare $(window).load instead of $(document).ready(

+0

Anche per me funziona con il layout predefinito. È interessante notare che l'esempio di isotopo predefinito usa '$ (document) .ready()' .. [Codepen link] (http://codepen.io/desandro/pen/nFrte) – Cammy

+0

Mentre il caricamento della finestra potrebbe funzionare, non lo consiglio . caricamento della finestra attende il caricamento di TUTTE le risorse sulla pagina (CSS, JS, img, iframe, ecc.). imagesLoaded è più adatto in quanto puoi scegliere come target solo le immagini all'interno dell'istanza Isotope da caricare. – desandro

8
var $container = $('#container').imagesLoaded(function() { 
    $container.isotope({ 
    // options 
    }); 
}); 

Vedi Isotope - imagesLoaded

+0

Hai ragione. Sopra la pagina restituisce 404 non trovato ora. – Kanu

+0

informazioni sono qui ora: http://isotope.metafizzy.co/layout.html#imagesloaded – wintersolutions

+0

Questa dovrebbe essere la risposta accettata, è dall'autore dopo tutto – Blowsie

0

questo accadesse perché isotopo doen't conoscere le dimensioni delle immagini prima del carico. Il modo migliore per farlo è utilizzare un indicatore di caricamento (magari con plug-in imageLoaded) per caricare le immagini e quindi eseguire un inserimento o un'aggiunta con isotopo. Avrai una navigazione fluida e l'illusione di un sito di caricamento più veloce rispetto all'utilizzo di $ (window) .load().