IntersectionObserver API og tærskler
Opret observatører, og konfigurér synlighedstærskler
IntersectionObserver API og tærskler er en gratis HTML Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i HTML Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. HTML Academy-kurset indeholder 4 lektioner i alt.
Hvad IntersectionObserver gør
IntersectionObserver udløser tilbagekald, når et element kommer ind i eller forlader visningsområdet (eller en anden rullecontainer). Det er det moderne og effektive alternativ til lyttere på rulning — browseren udfører beregningerne, og din kode kører kun ved faktiske skift i synligheden.
Oprettelse
new IntersectionObserver(callback, options) opretter en observatør. Tilbagekaldet modtager et array med poster, når overlapninger ændres; options bestemmer, hvilken container der overvåges, og ved hvilke tærskelværdier.
const observer = new IntersectionObserver((entries) => {
for (const entry of entries) {
if (entry.isIntersecting) {
console.log("Visible:", entry.target);
}
}
});
observer.observe(document.querySelector(".hero"));IntersectionObserverEntry
Hver post har target (det overvågede element), isIntersecting (en boolesk værdi), intersectionRatio (fra 0 til 1), boundingClientRect, intersectionRect og time. Brug isIntersecting til binære synlighedstjek og intersectionRatio til logik baseret på den synlige procentdel.
Indstillingen threshold
{ threshold: 0.5 } udløser tilbagekaldet, hver gang overlapningsforholdet krydser 50 %. Brug et array som [0, 0.25, 0.5, 0.75, 1] for at udløse det ved hver fjerdedel — det er nyttigt til at opbygge statusindikatorer eller analyser, der rapporterer, hvor mange procent der er synlige.
Indstillingen root
Som standard måler observatøren overlapningen med visningsområdet. Sæt root: someScrollableDiv for at måle i forhold til en indre rullecontainer — for eksempel en virtualiseret liste i en div med fast højde.
Indstillingen rootMargin
rootMargin: "200px" udvider observationsområdet med 200 pixels på alle sider. Brug den til at udløse tidligere (start indlæsning af billeder 200 pixels før de kommer ind i visningsområdet) eller senere (udløs kun, når elementet helt har passeret visningsområdet).
new IntersectionObserver(callback, {
rootMargin: "0px 0px 200px 0px",
threshold: 0
});observe og unobserve
observer.observe(element) starter overvågningen af et element; observer.unobserve(element) stopper den. Afregistrer altid elementet, når du ikke længere har brug for tilbagekaldet (for eksempel efter at indlæsning efter behov er udløst én gang), så hukommelsen frigives.
disconnect
observer.disconnect() stopper overvågningen af alle overvågede elementer. Kald den, når komponenten afmonteres, eller observatøren ikke længere er nødvendig — det forhindrer hukommelseslækager fra observatører, der lever længere end deres anvendelse.
Asynkron levering
Tilbagekald leveres asynkront og samles i grupper — mange ændringer i overlapningen under hurtig rulning udløser ét tilbagekald med alle poster, ikke ét pr. element. Det er en stor ydeevnefordel sammenlignet med lyttere på rulning, der udløses ved hver rullehændelse.
Det første tilbagekald udløses med det samme
Når du begynder at overvåge et nyt element, udløses tilbagekaldet næsten med det samme én gang med den aktuelle tilstand — det er nyttigt til at håndtere elementer, der allerede er synlige, når overvågningen begynder, uden en særskilt initialiseringssti.
Almindelige anvendelser
Indlæsning af billeder efter behov, udløsning af animationer, når de rulles ind i visningen, uendelig rulning (overvåg et sentinel-element nær listens slutning), registrering af hvilke artikler brugeren faktisk har læst, og skift af fastgjort sidehoved baseret på heltens synlighed.
Test din viden
Hvad er forskellen på threshold: 0 og threshold: 1 i en IntersectionObserver?
Opsummering
IntersectionObserver udløser tilbagekald ved skift i elementers synlighed med indbygget ydeevneoptimering og gruppering — erstat lyttere på rulning med den til synlighedslogik. Konfigurér den med threshold (fra 0 til 1 eller et array), root (en tilpasset rullecontainer) og rootMargin (udvid eller formindsk observationsområdet). Brug observe/unobserve til enkelte elementer; disconnect rydder alt op.
Lær HTML med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 40
- Lektioner
- 159
Ofte stillede spørgsmål
Er lektionen “IntersectionObserver API og tærskler” gratis?
Ja — alle 3 lektioner i læringssporet HTML Academy, inklusive “IntersectionObserver API og tærskler”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. HTML Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “IntersectionObserver API og tærskler”?
Opret observatører, og konfigurér synlighedstærskler Du øver dig i HTML Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på HTML Academy?
Der kræves ingen tidligere erfaring. HTML Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “IntersectionObserver API og tærskler”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne HTML Academy-lektion?
Ja. Alle HTML Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- IntersectionObserver API og tærskler
- Lazy loading med IntersectionObserver
- Implementering af uendelig scrolling
- Opsætning af scroll-koblede animationer