Hier ist eine vereinfachte Version meiner Arbeit.
HTML
Code: Select all
Code: Select all
const observer = new IntersectionObserver((entries, obs) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
obs.unobserve(img);
}
});
});
function addImage() {
const img = document.createElement('img');
img.dataset.src = 'https://via.placeholder.com/600x400';
img.alt = 'Test image';
document.getElementById('content').appendChild(img);
observer.observe(img);
}
// Simulate async content load
setTimeout(addImage, 1000);
Das Bild sollte geladen werden, wenn es in das Ansichtsfenster gelangt.
Tatsächliches Verhalten:
Das Bild wird dem DOM hinzugefügt, aber IntersectionObserver wird nie ausgelöst, auch nicht beim Scrollen.
Ich habe Folgendes überprüft:
- Das Der Beobachter wird erstellt, bevor das Bild hinzugefügt wird
- wird aufgerufen
Code: Select all
observer.observe(img) - Das Bild befindet sich im Ansichtsfenster
Mobile version