API `IntersectionObserver` et seuils
Créez des observateurs et configurez les seuils de visibilité.
API `IntersectionObserver` et seuils est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.
Fonctionnement d’IntersectionObserver
IntersectionObserver déclenche des fonctions de rappel lorsqu’un élément entre dans la fenêtre d’affichage ou en sort (ou lorsqu’il entre dans un autre conteneur de défilement ou en sort). C’est l’alternative moderne et performante aux écouteurs de défilement : le navigateur effectue les calculs et votre code ne s’exécute que lors de véritables changements de visibilité.
Création
new IntersectionObserver(callback, options) crée un observateur. La fonction de rappel reçoit un tableau d’entrées lorsque les intersections changent ; les options déterminent le conteneur observé et les seuils à prendre en compte.
const observer = new IntersectionObserver((entries) => {
for (const entry of entries) {
if (entry.isIntersecting) {
console.log("Visible:", entry.target);
}
}
});
observer.observe(document.querySelector(".hero"));L’IntersectionObserverEntry
Chaque entrée possède target (l’élément observé), isIntersecting (un booléen), intersectionRatio (de 0 à 1), boundingClientRect, intersectionRect et time. Utilisez isIntersecting pour les vérifications de visibilité binaire et intersectionRatio pour la logique fondée sur le pourcentage visible.
L’option de seuil
{ threshold: 0.5 } déclenche la fonction de rappel chaque fois que le taux d’intersection franchit 50 %. Utilisez un tableau [0, 0.25, 0.5, 0.75, 1] pour déclencher la fonction à chaque quart ; c’est utile pour créer des indicateurs de progression ou des outils d’analyse indiquant le « pourcentage visible ».
L’option root
Par défaut, l’observateur mesure l’intersection avec la fenêtre d’affichage. Définissez root: someScrollableDiv pour mesurer l’intersection par rapport à un conteneur de défilement interne, par exemple une liste virtualisée dans un div à hauteur fixe.
L’option rootMargin
rootMargin: "200px" agrandit la zone d’observation de 200 pixels de chaque côté. Utilisez-la pour déclencher l’action plus tôt (commencer à charger les images 200 pixels avant leur entrée dans la fenêtre d’affichage) ou plus tard (attendre qu’elles soient complètement sorties de la fenêtre).
new IntersectionObserver(callback, {
rootMargin: "0px 0px 200px 0px",
threshold: 0
});observe et unobserve
observer.observe(element) commence à surveiller un élément ; observer.unobserve(element) arrête de le surveiller. Appelez toujours unobserve lorsque vous n’avez plus besoin de la fonction de rappel (par exemple, après un seul déclenchement du chargement différé), afin de libérer la mémoire.
Déconnexion
observer.disconnect() arrête la surveillance de tous les éléments observés. Appelez cette méthode lorsque le composant est démonté ou que l’observateur n’est plus nécessaire ; cela évite les fuites causées par des observateurs qui survivent à leur cas d’utilisation.
Distribution asynchrone
Les fonctions de rappel sont appelées de manière asynchrone et regroupées : de nombreux changements d’intersection pendant un défilement rapide déclenchent une seule fonction de rappel contenant toutes les entrées, et non une fonction par élément. C’est un gain de performance majeur par rapport aux écouteurs de défilement, appelés à chaque événement de défilement.
La fonction de rappel initiale est appelée immédiatement
Lorsque vous observez un nouvel élément, la fonction de rappel est appelée une fois, presque immédiatement, avec l’état actuel. Cela permet de gérer les éléments déjà visibles au début de l’observation, sans chemin d’initialisation particulier.
Cas d’utilisation courants
Chargement différé des images, déclenchement d’animations lors de l’entrée dans la fenêtre d’affichage, défilement infini (observation d’un sentinel près de la fin de la liste), suivi des articles réellement lus par l’utilisateur, activation ou désactivation d’un en-tête fixe selon la visibilité de la section principale.
Vérification des connaissances
Quelle est la différence entre un seuil de 0 et un seuil de 1 dans un IntersectionObserver ?
Résumé
IntersectionObserver déclenche des fonctions de rappel lors des changements de visibilité d’un élément, avec regroupement et bonnes performances intégrés : utilisez-le à la place des écouteurs de défilement pour la logique de visibilité. Configurez-le avec un seuil (de 0 à 1 ou sous forme de tableau), une racine (un conteneur de défilement personnalisé) et rootMargin (pour agrandir ou réduire la zone observée). Utilisez observe et unobserve pour les éléments concernés ; la déconnexion nettoie tout.
Questions Fréquemment Posées
La leçon « API `IntersectionObserver` et seuils » est-elle gratuite ?
Oui — le texte complet de « API `IntersectionObserver` et seuils » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « API `IntersectionObserver` et seuils » ?
Créez des observateurs et configurez les seuils de visibilité. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer HTML Academy ?
Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « API `IntersectionObserver` et seuils » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?
Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- API `IntersectionObserver` et seuils
- Chargement différé avec `IntersectionObserver`
- Implémenter le défilement infini
- Configurer des animations liées au défilement