Autor Zpráva
Pavel Straka
Profil
Dobré odpoledne, rád bych požádal zkušenější o radu s použitím Masonry ( http://masonry.desandro.com/ ). Mám problém se zobrazením divů/rámečků, pokud je v rámečku obrázek. Dočetl jsem se, že se toto vyřeší pomocí imagesLoaded ( http://masonry.desandro.com/appendix.html ), ale nevím si s tím bohužel rady.

Nejdříve je potřeba inicializovat Masonry takto:

var container = document.querySelector('#container');
var msnry = new Masonry( container, {
  // options
  columnWidth: 200,
  itemSelector: '.item'
});
?

Potom
<div id="container">
<div class="item">1</div>
<div class="item">2</div>
</div>
?

A nakonec:
var container = document.querySelector('#container');
var msnry;
// initialize Masonry after all images have loaded
imagesLoaded( container, function() {
  msnry = new Masonry( container );
});

Takto to nefunguje.
Díky všem za rady.
Chamurappi
Profil
Reaguji na Pavla Straku:
document.querySelector('#container');
Proč nepoužíváš document.getElementById("container")?

Nejdříve je potřeba inicializovat Masonry takto“ […] „Potom“ […] „?
Pokud máš kód opravdu v tomto pořadí, tak v proměnné container je null. Skripty se spouštějí v okamžiku, kdy se načtou.

A nakonec
Jestli jsem to správně pochopil, tak tahle inicializace by měla nahradit tu výchozí. Ale vycházím ze stejných zdrojů jako ty, takže se možná pletu. Na první pohled mi Masonry připadá jako blbost.
Pavel Straka
Profil
Ani když tahle inicializace nahradí výchozí, nefunguje to. Jen jsem zkopíroval ty zdrojové kódy z webu Masonry.

Taky bych nejraději žádné Masonry nepoužíval, ale potřebuji to klasické zobrazení matice (styl sbazar.cz).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: