Heim > Web-Frontend > js-Tutorial > Wie kann sichergestellt werden, dass ein Hintergrundbild vor der Codeausführung geladen wird?

Wie kann sichergestellt werden, dass ein Hintergrundbild vor der Codeausführung geladen wird?

Mary-Kate Olsen
Freigeben: 2024-11-17 08:07:03
Original
675 Leute haben es durchsucht

How to Ensure a Background Image Loads Before Code Execution?

Sicherstellen, dass das Hintergrundbild vor der Codeausführung geladen wird

Das Einfügen eines Hintergrundbilds in den Body-Tag und das Einleiten der anschließenden Codeausführung kann bei der Bestimmung eine Herausforderung darstellen wenn das Bild vollständig geladen ist. Die Verwendung der herkömmlichen Funktion „load()“, wie im bereitgestellten Beispiel gezeigt, reicht nicht aus.

Lösung:

Um diese Hürde zu überwinden, sollten Sie den folgenden Ansatz in Betracht ziehen:

$('<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)');
});
Nach dem Login kopieren

Dieser Code erstellt ein neues Bild im Speicher und nutzt das Ladeereignis, um zu erkennen, wann das Quellbild geladen wurde. Durch das Entfernen des Bildes nach dem Laden werden potenzielle Speicherlecks vermieden.

Vanilla-JavaScript-Implementierung:

Für Vanilla-JavaScript hat die Lösung die folgende Form:

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

Versprechensbasierte Abstraktion:

Um den Prozess zu abstrahieren, ein praktisches Hilfsmittel Es kann eine Funktion erstellt werden, die ein Versprechen zurückgibt:

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})`;
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann sichergestellt werden, dass ein Hintergrundbild vor der Codeausführung geladen wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage