Приветствую.
Думаю, многие знают о том, как не красиво выглядит загрузка большого изображения. Оно загружается и отображается по кускам сверху вниз. Это не очень приятно, не очень красиво.
Конечно, есть прелоадеры и, возможно, другое решение, но вот в чем вопрос:
Как сделать так, чтобы изображение не отображалось на странице, пока оно полностью не загрузится?
То есть будет сначала отображаться страница с текстом, потому что она весит меньше и потом будут отображаться все изображения или сколько их там, но каждое из них будет показываться (отображаться) после того, как полностью загрузилось.
Помогите.
Используйте этот код:
var img = document.createElement('img');
img.src = your_photo_path; // здесь начинается загрузка изображения
img.onload = function() {
// устанавливаем новое изображение в photo_wrap
document.getElementById('photo_wrap').innerHTML = '<img id="your_photo" src="' + your_photo_path + '">';
}
Для начала мы создаем объект img
и без изменения текущего DOM страницы загружаем в него изображение. После загрузки изображение попадает в кэш браузера и срабатывает img.onload
, а далее много путей. В приведенном примере было загружен тег с изображением в контейнер для фотографии photo_wrap
, но можно и просто менять атрибут src
или грузить изображение в background
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Разбирая вот этот туториал (автор Manuel Kiessling), наткнулся на ошибку при выполнении финального примера; описание этой ошибки и действия, которые...
Подскажите, пожалуйста, почему выводит в консоль 1,2,3,4? В моем понимании, должны быть только 3 и 4 (первым срабатывает && где выполняется...