2012-04-15 6 views
6

So bin ich mit dem Isotop masonry Layoutjquery Isotopen-Option für die automatischen Höhen auf Element

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

Das Problem ist, dass wenn ich die Höhe nicht für die article in CSS festgelegt, das Layout doesn Es sieht nicht gut aus, dass sich die Elemente überschneiden und so, aber ich kann keine feste Höhe für die Elemente festlegen, da es sich um Blogposts handelt, die sich in der Größe ändern können. Habt ihr irgendwelche Tipps, wie das gelöst werden kann?

Antwort

23

Problem gelöst, müssen Sie rufen $(window).load instead of $(document).ready(

+0

Funktioniert auch für mich, mit defaul Layout tho. Interessanterweise verwendet das Standardisotopebeispiel "$ (document) .ready()' .. [Codepen link] (http://codepen.io/desandro/pen/nFrte) – Cammy

+0

Während das Fensterladen funktioniert, empfehle ich es nicht . window load wartet darauf, dass ALLE Assets auf der Seite geladen werden (CSS, JS, img, iframe, etc). imagesLoaded ist besser geeignet, da Sie nur die Bilder innerhalb der Isotope-Instanz zum Laden auswählen können. – desandro

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

Siehe Isotope - imagesLoaded

+0

Sie haben Recht. Die obige Seite gibt 404 nicht gefunden. – Kanu

+0

info ist hier jetzt: http://isotope.metafizzy.co/layout.html#imagesloaded – wintersolutions

+0

Dies sollte die akzeptierte Antwort sein, es ist vom Autor immerhin – Blowsie

0

Dies geschah, weil Isotop wissen doen't Ihre Bildgrößen vor Belastung. Der beste Weg, dies zu tun, ist eine Ladeanzeige (möglicherweise mit imageLoaded Plugin), um die Bilder zu laden und dann ein Einfügen oder Anhängen mit Isotop durchzuführen. Sie haben eine reibungslose Navigation und eine schnellere Lade-Site als mit $ (window) .load().