0Pricing
HTML Academy · Lezione

IntersectionObserver API e soglie

Creare observer e configurare le soglie di visibilità

IntersectionObserver API e soglie è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Funzionamento di IntersectionObserver

IntersectionObserver esegue i callback quando un elemento entra o esce dal viewport (o da un altro contenitore con scorrimento). È l'alternativa moderna e performante ai listener dello scorrimento: è il browser a eseguire i calcoli e il codice viene eseguito solo in caso di effettivi cambiamenti di visibilità.

Creazione

new IntersectionObserver(callback, options) crea un observer. Il callback riceve un array di entry quando cambiano le intersezioni; le opzioni controllano quale contenitore osservare e a quali soglie.

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

IntersectionObserverEntry

Ogni entry contiene target (l'elemento osservato), isIntersecting (booleano), intersectionRatio (da 0 a 1), boundingClientRect, intersectionRect e time. Utilizzi isIntersecting per i controlli di visibilità binari e intersectionRatio per la logica basata sulla percentuale visibile.

L'opzione threshold

{ threshold: 0.5 } esegue il callback ogni volta che il rapporto di intersezione supera il 50%. Utilizzi un array [0, 0.25, 0.5, 0.75, 1] per eseguirlo a ogni quarto, utile per creare indicatori di avanzamento o analisi che riportano la percentuale visibile.

L'opzione root

Per impostazione predefinita, l'observer misura l'intersezione con il viewport. Imposti root: someScrollableDiv per effettuare la misurazione rispetto a un contenitore interno con scorrimento, ad esempio una lista virtualizzata all'interno di un div con altezza fissa.

L'opzione rootMargin

rootMargin: "200px" amplia di 200 pixel per lato l'area osservata. Lo utilizzi per eseguire il callback in anticipo (iniziando a caricare le immagini 200 px prima che entrino nel viewport) o in ritardo (eseguendolo solo quando sono completamente oltre il viewport).

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

observe e unobserve

observer.observe(element) inizia a osservare un elemento; observer.unobserve(element) interrompe l'osservazione. Esegua sempre unobserve quando il callback non è più necessario (ad esempio dopo che il caricamento differito è stato attivato una volta), per liberare memoria.

disconnect

observer.disconnect() interrompe l'osservazione di tutti gli elementi osservati. Lo chiami quando il componente viene smontato o quando l'observer non è più necessario, per evitare perdite di memoria dovute a observer che continuano a vivere oltre il loro caso d'uso.

Esecuzione asincrona

I callback vengono eseguiti in modo asincrono e raggruppato: molte variazioni delle intersezioni durante uno scorrimento rapido attivano un solo callback con tutte le entry, non un callback per elemento. Si tratta di un importante vantaggio in termini di prestazioni rispetto ai listener dello scorrimento, che vengono eseguiti a ogni evento di scorrimento.

Il callback iniziale viene eseguito immediatamente

Quando osserva un nuovo elemento, il callback viene eseguito quasi immediatamente una volta, con lo stato corrente. Questo è utile per gestire gli elementi già visibili all'inizio dell'osservazione, senza dover creare un percorso di inizializzazione separato.

Casi d'uso comuni

Caricamento differito delle immagini, attivazione di animazioni quando gli elementi entrano nel viewport, scorrimento infinito (osservando un sentinel vicino alla fine della lista), tracciamento degli articoli che l'utente ha effettivamente letto, attivazione o disattivazione di un'intestazione fissa in base alla visibilità dell'hero.

Verifica delle conoscenze

Qual è la differenza tra threshold: 0 e threshold: 1 in un IntersectionObserver?

Riepilogo

IntersectionObserver esegue callback quando cambia la visibilità di un elemento, offrendo prestazioni elevate e raggruppamento integrati: lo utilizzi al posto dei listener dello scorrimento per la logica basata sulla visibilità. Lo configuri con threshold (da 0 a 1 oppure un array), root (un contenitore personalizzato con scorrimento) e rootMargin (per ampliare o ridurre l'area osservata). Utilizzi observe/unobserve per i singoli elementi e disconnect per eseguire la pulizia completa.

Domande Frequenti

La lezione «IntersectionObserver API e soglie» è gratuita?

Sì — il testo completo di «IntersectionObserver API e soglie» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «IntersectionObserver API e soglie»?

Creare observer e configurare le soglie di visibilità Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «IntersectionObserver API e soglie»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. IntersectionObserver API e soglie
  2. Caricamento differito con IntersectionObserver
  3. Implementare lo scorrimento infinito
  4. Configurare animazioni legate allo scorrimento
← Torna a HTML Academy