«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как надежно проверить, загрузилось ли фоновое изображение?

Как надежно проверить, загрузилось ли фоновое изображение?

Опубликовано 24 ноября 2024 г.
Просматривать:624

How to Reliably Check if a Background Image Has Loaded?

Использование загрузчика фонового изображения

Вы пытаетесь проверить, загрузилось ли фоновое изображение, установив фоновое изображение в теге body а затем с помощью функции load(). Однако этот подход не работает эффективно для фоновых изображений.

Чтобы действительно убедиться, что фоновое изображение полностью загрузилось, вы можете использовать другой метод:

$('<img/>').attr('src', 'http://picture.de/image.png').on('load', function() {
   $(this).remove(); // prevent memory leaks
   $('body').css('background-image', 'url(http://picture.de/image.png)');
});

Этот метод создает новое изображение в памяти и присоединяет к нему прослушиватель событий загрузки. После загрузки изображения запускается событие загрузки, и фоновое изображение устанавливается в теге body.

В стандартном JavaScript это можно реализовать так:

var src = 'http://picture.de/image.png';
var image = new Image();
image.addEventListener('load', function() {
   body.style.backgroundImage = 'url('   src   ')';
});
image.src = src;

Вы также можете создать абстрактную функцию для обработки загрузки изображения и возврата обещания:

function load(src) {
    return new Promise((resolve, reject) => {
        const image = new Image();
        image.addEventListener('load', resolve);
        image.addEventListener('error', reject);
        image.src = src;
    });
}

const image = 'http://placekitten.com/200/300';
load(image).then(() => {
   body.style.backgroundImage = `url(${image})`;
});

Этот подход позволяет надежно проверить завершение загрузки фонового изображения и гарантирует, что код будет выполнен только после полной загрузки изображения.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3