blob: fdeb1c2eeb5457612ebab438ed85cbd35a6fefcc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
---
title: IntersectionObserver
slug: Web/API/IntersectionObserver
tags:
- API
- Experimental
- Interface
- IntersectionObserver
- Observation
- Visibilité
translation_of: Web/API/IntersectionObserver
---
<div>{{SeeCompatTable}}{{APIRef("Intersection Observer API")}}</div>
<p><span class="seoSummary">L'interface <code><strong>IntersectionObserver</strong></code> de l'<a href="/en-US/docs/Web/API/Intersection_Observer_API">API Intersection Observer</a> fournit un moyen d'observer de manière asynchrone les changements d'intersection d'un élément cible avec un élément ancêtre ou avec la fenêtre du document {{Glossary('viewport')}}.</span> L'ancêtre ou la fenêtre du document racine est alors appelé racine.</p>
<p>Lorsqu'un <code>IntersectionObserver</code> est créé, il est configuré pour surveiller des ratios donnés de visibilité au sein de la racine. La configuration ne peut être changé après initialisation de l'<code>IntersectionObserver</code>, ainsi un certain objet d'observation n'est utile que pour surveiller des changements spécifiques en mesure de visibilité ; toutefois, l'on peut observer de multiples éléments avec un unique observateur.</p>
<h2 id="Constructeur">Constructeur</h2>
<dl>
<dt>{{domxref("IntersectionObserver.IntersectionObserver()")}}</dt>
<dd>Crée un nouvel objet <code>IntersectionObserver</code> qui exécutera une fonction de rappel spécifiée lorsqu'il détectera que la visibilité de l'élément cible a franchi un ou plusieurs des seuils.</dd>
</dl>
<h2 id="Propriétés">Propriétés</h2>
<dl>
<dt>{{domxref("IntersectionObserver.root")}} {{readonlyinline}}</dt>
<dd>Un ancêtre spécifique de la cible {{domxref("element")}} étant observé. Si aucune valeur n'a été donnée au constructeur ou qu'il vaut <code>null</code>, la fenêtre du document racine est utilisée.</dd>
<dt>{{domxref("IntersectionObserver.rootMargin")}} {{readonlyinline}}</dt>
<dd>
<div id="gt-res-content">
<div class="trans-verified-button-small" dir="ltr" id="gt-res-dir-ctr"><span id="result_box" lang="fr"><span>Un rectangle de décalage appliqué au {{Glossary ('bounding box')}} de la racine lors du calcul des intersections, réduisant ou développant la racine à des fins de calcul.</span> <span>La valeur renvoyée par cette propriété peut différer de celle spécifiée lors de l'appel du constructeur, car elle peut être modifiée pour répondre aux exigences internes.</span> <span>Chaque décalage peut être exprimé en pixels (px) ou en pourcentage (%).</span> <span>La valeur par défaut est "0px 0px 0px 0px".</span></span></div>
</div>
</dd>
<dt>{{domxref("IntersectionObserver.thresholds")}} {{readonlyinline}}</dt>
<dd>Une liste de seuils, triée par ordre numérique croissant, où chaque seuil est un rapport de la surface d'intersection à la surface de la zone de délimitation de l'élément observé. Les notifications pour une cible sont émises dès lors qu'un seuil au moins est franchi pour cette cible. Si aucune valeur n'est donnée, 0 est définie par défaut.</dd>
</dl>
<h2 id="Méthodes">Méthodes</h2>
<dl>
<dt>{{domxref("IntersectionObserver.disconnect()")}}</dt>
<dd>Indique à l'objet <code>IntersectionObserver</code> de ne plus observer aucune cible.</dd>
<dt>{{domxref("IntersectionObserver.observe()")}}</dt>
<dd>Indique à l'<code>IntersectionObserver</code> un nouvel élément à observer.</dd>
<dt>{{domxref("IntersectionObserver.takeRecords()")}}</dt>
<dd>Retourne un tableau d'objets {{domxref("IntersectionObserverEntry")}} pour toutes les cibles observées et cesse de surveiller chacune d'elles.</dd>
<dt>{{domxref("IntersectionObserver.unobserve()")}}</dt>
<dd>Indique à l'<code>IntersectionObserver</code> de cesser d'observer un élément cible particuler.</dd>
<dt>
<h2 id="Exemples">Exemples</h2>
</dt>
</dl>
<pre class="brush: js">var intersectionObserver = new IntersectionObserver(function (entrées) {
// Si intersectionRatio vaut 0 ou moins, la cible
// est hors de vue et rien n'est alors fait
if (entrées[0].intersectionRatio <= 0) return;
chargerÉléments(10);
console.log("Nouveaux éléments chargés");
});
// commencement de l'observation
intersectionObserver.observe(document.querySelector("sélecteur CSS"));</pre>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('IntersectionObserver')}}</td>
<td>{{Spec2('IntersectionObserver')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
<p>{{Compat("api.IntersectionObserver")}}</p>
|