Комментарии 9
Думаю надо отметить, что для того чтобы этот код работал в Safari, необходимо использовать полифилл, к примеру polyfill.io/v2/polyfill.min.js?features=IntersectionObserver
0
По логике когда пользователь доскроллил до изображения, то он ожидает увидеть его уже загруженным, значит загружать его надо раньше, чем область просмотра зацепит край изображения. И тем раньше, чем больше размер изображения. Это можно решить отдельной «увеличенной» областью, по которой будет начинаться загрузка.
0
НЛО прилетело и опубликовало эту надпись здесь
Почему то все дёргают тег <img src="image.jpg">
? Я использую тег <a class="lazy" style="background-image:(image.jpg)" href="big-image.jpg"></a>
и <style>.lazy{background-image: none !important}</style>
. Если ссылка не нужна то можно использовать span или div.
Это позволяет автоматически отложить загрузку изображения до тех пор пока с тега не будет снят класс "lazy". Заодно появляется больше возможностей играться стилями с изображением. Ну естественно элементу нужно заранее задать размеры и block или inline-block в стилях.
0
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Ленивая загрузка изображений с использованием IntersectionObserver