Javascript: ленивая загрузка изображений в горизонтальном Div?

У меня есть div, в котором есть несколько миниатюр, отображаемых по горизонтали (с горизонтальной полосой прокрутки). Есть ли способ лениво загружать эти миниатюры и показывать их только после того, как пользователь горизонтально прокручивает их до их положения? Все примеры, которые я видел, проверяют окно браузера, а не div.

Это для конкурсных работ, поэтому иногда появляются сотни заявок, что сильно влияет на производительность.

Заранее спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
8 905
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

См. Мой вопрос, где я столкнулся с подобной проблемой. Джейсон Бантинг дал мне удобный небольшой скрипт для загрузки изображений по частям:

Как отобразить статус загрузки с предварительным загрузчиком и несколькими изображениями?

Ответ принят как подходящий

Я раздвоил плагин ленивой загрузки для jQuery и добавил поддержку отложенной загрузки изображений в контейнер div.плагин ленивой загрузки для jQuery теперь поддерживает это напрямую. Не должно быть слишком сложно удалить зависимость от jQuery или адаптировать его к другой библиотеке, если это необходимо.

Вы можете получить мой разветвленный проект с github: http://github.com/silentmatt/jquery_lazyload/tree/master.

Чтобы использовать его, вызовите lazyload для изображений так же, как в оригинале, за исключением того, что вам нужно добавить опцию «контейнер» с прокручиваемым элементом div. Итак, если ваш HTML выглядит так:

<div id = "container" style = "width: 765px; overflow: scroll;">
    <img src = "image1.jpg" width = "765" height = "574">
    <img src = "image2.jpg" width = "765" height = "574">
    <img src = "image3.jpg" width = "765" height = "574">
    ...
</div>

вы бы назвали lazyload вот так:

$("#container img").lazyload({ container: $("#container") });

Спасибо! Я уже давно за это выдергиваю волосы!

Arthur Chaparyan 16.01.2009 01:14

Быстрый вопрос: похоже, это не работает в IE, это известная проблема?

Arthur Chaparyan 16.01.2009 01:33

Я думаю, проблема заключалась в том, что событие загрузки не запускалось, когда изображения загружались слишком быстро. Я изменил его, чтобы он установил атрибут src после привязки события к загрузке, поэтому теперь он должен работать.

Matthew Crumley 16.01.2009 06:57

Другие вопросы по теме