Heim >Web-Frontend >js-Tutorial >Wie kann man zuverlässig prüfen, ob ein Hintergrundbild geladen wurde?

Wie kann man zuverlässig prüfen, ob ein Hintergrundbild geladen wurde?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-16 06:54:02933Durchsuche

How to Reliably Check if a Background Image Has Loaded?

Verwenden eines Hintergrundbild-Loaders

Sie versuchen zu überprüfen, ob ein Hintergrundbild geladen wurde, indem Sie ein Hintergrundbild auf dem Body-Tag festlegen und dann die Funktion „load()“ verwenden. Dieser Ansatz funktioniert jedoch nicht effektiv für Hintergrundbilder.

Um wirklich sicherzustellen, dass das Hintergrundbild vollständig geladen wurde, können Sie eine andere Technik verwenden:

$('<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)');
});

Diese Methode erstellt ein legt ein neues Bild im Speicher ab und hängt einen Ladeereignis-Listener daran an. Sobald das Bild geladen wurde, wird das Ladeereignis ausgelöst und das Hintergrundbild wird auf dem Body-Tag festgelegt.

In Vanilla-JavaScript kann dies wie folgt implementiert werden:

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

Sie können Erstellen Sie außerdem eine abstrahierte Funktion, um das Laden des Bildes zu handhaben und ein Versprechen zurückzugeben:

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})`;
});

Mit diesem Ansatz können Sie zuverlässig überprüfen, ob das Laden des Hintergrundbilds abgeschlossen ist, und sicherstellen, dass Code erst ausgeführt wird, wenn das Bild geladen ist voll beladen.

Das obige ist der detaillierte Inhalt vonWie kann man zuverlässig prüfen, ob ein Hintergrundbild geladen wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn