HTML Academy · Lektion

IntersectionObserver API och tröskelvärden

Skapa observatörer och konfigurera tröskelvärden för synlighet

Lektion 1 av 413 steg

IntersectionObserver API och tröskelvärden är en gratis lektion i HTML Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för HTML Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i HTML Academy innehåller totalt 4 lektioner.

Vad IntersectionObserver gör

IntersectionObserver kör callbacker när ett element kommer in i eller lämnar visningsområdet (eller en annan rullningsbehållare). Det är det moderna och effektiva alternativet till rullningslyssnare – webbläsaren gör beräkningarna och er kod körs bara vid faktiska förändringar i synligheten.

Skapa en observerare

new IntersectionObserver(callback, options) skapar en observerare. Callbacken får en array med poster när överlappningar förändras. Alternativen styr vilken behållare som observeras och vid vilka tröskelvärden.

const observer = new IntersectionObserver((entries) => {
  for (const entry of entries) {
    if (entry.isIntersecting) {
      console.log("Visible:", entry.target);
    }
  }
});
observer.observe(document.querySelector(".hero"));

IntersectionObserverEntry

Varje post har target (det observerade elementet), isIntersecting (booleskt värde), intersectionRatio (0 till 1), boundingClientRect, intersectionRect och time. Använd isIntersecting för binära synlighetskontroller och intersectionRatio för logik baserad på hur stor andel som är synlig.

Alternativet threshold

{ threshold: 0.5 } kör callbacken varje gång överlappningsgraden passerar 50 %. Använd en array, [0, 0.25, 0.5, 0.75, 1], för att köra den vid varje fjärdedel – användbart för att skapa förloppsindikatorer eller analyser som rapporterar hur stor procentandel som är synlig.

Alternativet root

Som standard mäter observeraren överlappningen med visningsområdet. Ange root: someScrollableDiv för att mäta mot en inre rullningsbehållare – till exempel en virtualiserad lista i en div med fast höjd.

Alternativet rootMargin

rootMargin: "200px" utökar observationsområdet med 200 pixlar på varje sida. Använd det för att köra tidigare (börja läsa in bilder 200 pixlar innan de kommer in i visningsområdet) eller senare (kör endast när de helt har passerat visningsområdet).

new IntersectionObserver(callback, {
  rootMargin: "0px 0px 200px 0px",
  threshold: 0
});

observe och unobserve

observer.observe(element) börjar observera ett element och observer.unobserve(element) slutar observera det. Sluta alltid observera elementet när callbacken inte längre behövs (till exempel efter att lazy loading har aktiverats en gång) för att frigöra minne.

disconnect

observer.disconnect() slutar observera alla observerade element. Anropa det när komponenten avmonteras eller observeraren inte längre behövs – det förhindrar läckor från observerare som lever längre än sitt användningsområde.

Asynkron leverans

Callbacker levereras asynkront och i batcher – många förändringar i överlappningen under en snabb rullning resulterar i en callback med alla poster, inte en per element. Det är en stor prestandavinst jämfört med rullningslyssnare som körs vid varje rullningshändelse.

Den första callbacken körs omedelbart

När ni börjar observera ett nytt element körs callbacken en gång nästan omedelbart med det aktuella tillståndet. Det är användbart för att hantera element som redan är synliga när observationen börjar, utan en särskild initieringssökväg.

Vanliga användningsområden

Lazy loading av bilder, starta animeringar när element rullas in i visningsområdet, oändlig rullning (observera ett sentinel nära listans slut), spåra vilka artiklar användaren faktiskt har läst och växla en sticky-header baserat på hjältelementets synlighet.

Kunskapskontroll

Vad är skillnaden mellan threshold: 0 och threshold: 1 i en IntersectionObserver?

Sammanfattning

IntersectionObserver kör callbacker vid förändringar i elements synlighet, med inbyggd prestandaoptimering och batchning – ersätt rullningslyssnare med det för synlighetslogik. Konfigurera med threshold (0 till 1 eller en array), root (anpassad rullningsbehållare) och rootMargin (utöka eller krymp observationsområdet). Använd observe/unobserve för specifika element och disconnect för att rensa bort allt.

Gratis att börja

Lär dig HTML med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
40
Lektioner
159

Vanliga frågor

Är lektionen ”IntersectionObserver API och tröskelvärden” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen HTML Academy, inklusive ”IntersectionObserver API och tröskelvärden”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i HTML Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”IntersectionObserver API och tröskelvärden”?

Skapa observatörer och konfigurera tröskelvärden för synlighet Ni övar på HTML Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig HTML Academy?

Du behöver inga förkunskaper. Utbildningen i HTML Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”IntersectionObserver API och tröskelvärden”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här HTML Academy-lektionen?

Ja. Varje HTML Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. IntersectionObserver API och tröskelvärden
  2. Lazy loading med IntersectionObserver
  3. Implementera oändlig rullning
  4. Konfigurera rullningskopplade animeringar
← Tillbaka till HTML Academy