streetflush
@streetflush

Как настроить lazyLoad Jquery для загрузки в момент появления на экране?

Добрый день.
Есть много картинок в дивах, загружаемые по LazyLoad.
Добавилась "живая" фильтрация через JQuery filter.
При фильтрации скрол не происходит, и картинки не грузятся.
Как сделать поддержку и скрола, и события фильтра.
  • Вопрос задан
  • 2163 просмотра
Пригласить эксперта
Ответы на вопрос 2
$("img.lazy").lazyload({
    threshold : 200
});

Это включит предзагрузку картинок в радиусе 200 пикселей от края экрана.
Но если у вас например табы на сайте, то картинки в табах которые не активны не загрузятся, пока вы не начнете крутить колёсико мышки, для этого вам необходимо добавить lazyload для переключения табов:
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
   $('#' + $(e.target).attr('href').substr(1) + ' img.lazy').lazyload({threshold: 200});
})


Соответственно вам нужно по событию типа "onFiltered" вызвать lazyload для той части страницы куда картинки должны загрузится.
Ответ написан
mobi
@mobi
Большинство плагинов фильтрации генерируют какое-нибудь событие при изменении содержимого (например, layout.shuffle в shuffle.js, и т.д.), на которое можно подписаться и вызывать $(window).trigger('scroll') для запуска LazyLoad (или в случае плагина LazyLoadXT просто дописать это событие в список событий, на которые он должен реагировать).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы