Я прошу прощения, если там есть ответ, пожалуйста, укажите мне правильный дубликат, если так.
Я пытаюсь создать мини-галерею, которая использует lazysizes для отложенной загрузки, изотоп для сортировки и imagesLoaded для перекомпоновки макета при загрузке отложенного изображения.
По какой-то причине моя функция imagesLoaded не обновляет Isotope, но если я регистрирую событие, а затем вручную запускаю iso.layout()
, он ДАЕТ перекомпоновку макета. Есть идеи, что случилось?
import lazySizes from 'lazysizes';
const Isotope = window.Isotope = require("isotope-layout/dist/isotope.pkgd.js");
const imagesLoaded = window.imagesLoaded = require("imagesloaded/imagesloaded.pkgd.js");
//.....
document.querySelectorAll(".content-gallery .medias").forEach(element => {
const elem = element;
const iso = new Isotope(elem, {
itemSelector: ".media",
layoutMode: "fitRows",
percentPosition: true,
});
function reflow(){
iso.layout();
}
imagesLoaded(elem)
.on("progress", reflow)
.on("always", reflow)
.on("done", reflow)
.on("fail", reflow)
.on("lazyloaded", reflow)
.on("load", reflow);
});
Если я сделаю мерзкий setInterval()
, то изотоп также перезапустится, поэтому кажется, что с ImagesLoaded что-то не так.