На днях я нашел Masonry.js и хотел начать использовать его в проектах. Чтобы практиковать, я решил, что хочу попытаться создать страницу, которая будет генерировать 16 разделов каждый раз, когда я нажимаю кнопку случайных высот и цветов и смотрю, как они правильно позиционируются. Дело в том, что оно не работает. Дивы генерируются отлично, что, по-видимому, является проблемой - заставить масонство пересчитать высоту контейнера из сгенерированных div. Без высоты на контейнере масонство не может вычислить соответствующую высоту для любого из других div. Я попытался использовать clearfix в контейнере, чтобы убедиться, что он растягивается вокруг вложенных элементов, но не повезло. Может ли кто-нибудь помочь?
Вам нужно использовать addItems для добавления элементов или уничтожения и воссоздания, чтобы пересчитать его: http://codepen.io/bhlaird/pen/HusbL
//Reload Masonry
$wall.masonry('destroy');
$wall.masonry({
columnWidth: '.brick',
itemSelector: '.brick'
});
Вы также можете выполнить перезагрузку и компоновку:
//Reload Masonry
$wall.masonry('reloadItems');
$wall.masonry('layout');