Я использую масонство и изображение. Загружается, чтобы загрузить стену изображений: каждый раз, когда изображение загружается, макетная компоновка обновляется.Масонство/imagesLoaded: предотвращение обновления макета от перемещения уже загруженных предметов
Это работает по назначению, но проблема в том, что большую часть времени масонство перемещает уже загруженные предметы в другую позицию при обновлении. Есть ли способ заставить масонство сохранить уже упорядоченные предметы, где они есть?
Все изображения имеют одинаковую ширину (но не такую же высоту).
HTML (с Bootstrap):
<div class="container-fluid">
<div id="gallery">
<div class="item col-sm-3">
<img src="1.jpg" alt="">
</div>
<div class="item col-sm-3">
<img src="2.jpg" alt="">
</div>
<div class="item col-sm-3">
<img src="3.jpg" alt="">
</div>
<!--more items -->
</div>
</div>
JS:
// hide images
$('.item img').hide();
//init Masonry
var $grid = $('#gallery').masonry({
itemSelector: '.item',
transitionDuration: 0,
percentPosition: true,
});
// fade in and layout Masonry after each image loads
imagesLoaded(".item img").on('progress', function(instance, image) {
$(image.img).fadeIn();
$grid.masonry('layout');
});