Как отображать изображения только после правильного отображения html?

#javascript #html

#javascript #HTML

Вопрос:

Я извлекаю все изображения профиля моего друга и создаю виджет, который будет отображать изображения одно за другим при следующем нажатии кнопки. Когда я делаю запрос на сервер facebook, в ответ во время рендеринга html я вижу, что все изображения отображаются в браузере, и после завершения загрузки все идеально вписывается в виджет. Как я могу избежать отображения этих изображений, пока моя страница все еще загружается.

Я что-то слышал о lazyloading, который будет загружать изображения только при сворачивании страницы. У меня нет опции прокрутки вниз и я понятия не имею, как использовать ladyload, но есть ли что-нибудь подобное, что было бы полезно для меня?

Комментарии:

1. В этом случае вы должны использовать javascript.

2. @AurelioDeRosa пожалуйста, предоставьте любую ссылку или объяснение, как здесь будет использоваться javascript, если сможете.

Ответ №1:

Вы можете использовать css, чтобы скрыть все изображения в виджете:

 #widget img {display:none;}
  

Затем используйте jquery, чтобы показать их, когда DOM будет прочитан, и все изображения будут загружены:

 $(document).ready(function() {
  $('#widget img').show()
});
  

Что-то вроде этого будет работать.

Ответ №2:

Если вам нужно разрабатывать только для поддерживаемых браузеров [проверьте это здесь] https://caniuse.com/#feat=loading-lazy-attr

вам лучше использовать встроенную отложенную загрузку изображений следующим образом:

 <img src="https://picsum.photos/id/300.jpg" loading="lazy" />
  

Ответ №3:

Существуют различные варианты отложенной загрузки изображений, если вы используете JavaScript.

Существует довольно много библиотек, которые помогут вам, например, плагин ленивой загрузки jquery: http://www.appelsiini.net/projects/lazyload

Или различные альтернативы, которые вы найдете через нашего старого друга Google 🙂

Ответ №4:

Используйте библиотеку отложенной загрузки jquery. Вот хорошее введение: http://deanhume.com/Home/BlogPost/lazy-loading-images-with-jquery/22

Ответ №5:

Вы можете использовать jQuery. jQuery — это «быстрая, лаконичная библиотека, которая упрощает просмотр HTML-документов, обработку событий, выполнение анимации и добавление AJAX».

Скрипты Jquery обычно запускаются с помощью этих команд

  $(document).ready(function() {
   // put all your jQuery goodness in here.
 });
  

таким образом, команды будут выполняться только после полного отображения страницы.

Здесь вы можете найти несколько руководств по jQuery