Я создаю сайт для фотографа. Он должен быть построен с использованием рамки Bootstrap 3, и он хочет иметь кладку с более чем 400 изображениями на одной странице. Для этого работать LazyLoad является обязательным. Я провел несколько дней, пытаясь получить LazyLoad для работы с Desandros Masonry, но без успеха.
Я пробовал все примеры поиска googling, но большинство сообщений/сайтов/форумов просто перенаправляют вас или копируют этот ответ stackoverflow: Сочетание LazyLoad и JQuery Masonry
Я пробовал оба метода, но, к сожалению, у меня ничего нет, кроме седых волос.....: (
Вот упрощенная версия вживую на странице im, работающая над:
http://nr.x10.mx
В этом примере я добавил fade-in на загрузку страницы, но оставил LazyLoad, так как могу заставить его работать.
И здесь у вас есть FIDDLE следующих
var container = document.querySelector('#ms-container');
imagesLoaded( container, function()
{
var msnry = new Masonry(container,
{ itemSelector: '.ms-item',
columnWidth: '.ms-item',});
});
Вы также можете скачать весь пакет здесь, включая jquery.lazyload.js
ЗДЕСЬ
Любая помощь будет высоко оценена
ОБНОВЛЕНИЕ
Здесь вы можете иметь 4 разных примера различных проблем.
Я также с радостью заметил, что класс Bootstrap .img-responsive
мешает LazyLoad.
1 - Масонство без LazyLoad
2 - Масонство и Lazyload - Масонство ломается, а LazyLoad не влияет
3 - LazyLoad без масонства - LazyLoad не влияет
4 - LazyLoad без масонства и Bootsrap "img-отзывчивый" удален
5 - масонство и LazyLoad с использованием первого метода ответа SO, упомянутого выше
6 - масонство и LazyLoad с использованием второго метода ответа SO, упомянутого выше
Оба последних из них следующая ошибка: [Ошибка] TypeError: 'undefined' не является функцией (оценка "$ container.imagesLoaded" ) глобальный код (5.html, строка 110)
Обновлен zip ЗДЕСЬ
Снова, любое чувство было бы высоко оценено, спасибо