Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Memastikan Imej Latar Belakang Dimuatkan Sebelum Menggayakan Badan?

Bagaimana untuk Memastikan Imej Latar Belakang Dimuatkan Sebelum Menggayakan Badan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-17 20:55:02704semak imbas

How to Ensure a Background Image is Loaded Before Styling the Body?

Cara Semak sama ada Imej Latar Belakang Dimuatkan

Untuk memastikan imej latar belakang dimuatkan sepenuhnya sebelum menjalankan sebarang kod, seperti sebagai mengubah penggayaan tag badan, pendekatan alternatif diperlukan. Berikut ialah penyelesaian terperinci:

  1. Mencipta Objek Imej:
const image = new Image();
  1. Menetapkan Sumber Imej:
image.src = 'http://picture.de/image.png';
  1. Menggunakan Acara Muatan:
image.addEventListener('load', function() {
  // Code to be executed after the image is loaded
});
  1. Memohon Imej Latar Belakang:

Selepas imej dimuatkan, anda boleh meneruskan untuk menerapkannya sebagai imej latar belakang:

const body = document.querySelector('body');
body.style.backgroundImage = `url('${image.src}')`;
  1. Menggunakan Penyelesaian Berasaskan Janji:

Untuk pendekatan yang lebih berstruktur, fungsi berasaskan janji boleh digunakan:

function loadImage(src) {
  return new Promise((resolve, reject) => {
    const image = new Image();
    image.addEventListener('load', () => resolve(image));
    image.addEventListener('error', () => reject(`Failed to load image: ${src}`));
    image.src = src;
  });
}

loadImage('http://picture.de/image.png').then(image => {
  body.style.backgroundImage = `url('${image.src}')`;
});

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Imej Latar Belakang Dimuatkan Sebelum Menggayakan Badan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn