diff options
Diffstat (limited to 'files/fr/web/api/document/scroll_event/index.md')
-rw-r--r-- | files/fr/web/api/document/scroll_event/index.md | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/files/fr/web/api/document/scroll_event/index.md b/files/fr/web/api/document/scroll_event/index.md new file mode 100644 index 0000000000..21c5ba592e --- /dev/null +++ b/files/fr/web/api/document/scroll_event/index.md @@ -0,0 +1,148 @@ +--- +title: scroll +slug: Web/API/Document/scroll_event +tags: + - API + - Event Handler + - Reference + - events + - requestAnimationFrame +translation_of: Web/API/Document/scroll_event +--- +<div>{{APIRef}}</div> + +<p>L’évènement <strong><code>scroll</code></strong> (défilement) est émis lorsque l’on fait défiler le document ou un élément.</p> + +<h2 id="Informations_générales">Informations générales</h2> + +<table class="properties"> + <tbody> + <tr> + <th>Bouillonne</th> + <td>Pas sur les éléments, mais bouillonne vers la defaultView si émis sur le document</td> + </tr> + <tr> + <th>Annulable</th> + <td>Non</td> + </tr> + <tr> + <th>Interface</th> + <td>{{domxref("UIEvent")}}</td> + </tr> + <tr> + <th>Cible</th> + <td>DefaultView, {{domxref("Document")}}, {{domxref("Element")}}</td> + </tr> + <tr> + <th>Action par défaut</th> + <td>Aucune</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Note :</strong> Sur iOS UIWebViews, les évènements <code>scroll</code> ne sont pas émis pendant le défilement, mais une fois que celui-ci est terminé. Voir <a href="https://github.com/twbs/bootstrap/issues/16202">Bootstrap issue #16202</a>. Safari et WKWebViews ne sont pas affectés par ce bogue.</p> +</div> + +<h2 id="Propriétés">Propriétés</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Propriété</th> + <th scope="col">Type</th> + <th scope="col">Description</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>target</code> {{readonlyInline}}</td> + <td>{{domxref("EventTarget")}}</td> + <td>La cible de l’évènement (la plus haute dans l’arbre DOM).</td> + </tr> + <tr> + <td><code>type</code> {{readonlyInline}}</td> + <td>{{domxref("DOMString")}}</td> + <td>Le type d’évènement.</td> + </tr> + <tr> + <td><code>bubbles</code> {{readonlyInline}}</td> + <td>{{domxref("Boolean")}}</td> + <td>Si l’évènement bouillonne ou non.</td> + </tr> + <tr> + <td><code>cancelable</code> {{readonlyInline}}</td> + <td>{{domxref("Boolean")}}</td> + <td>Si l’évènement est annulable ou non.</td> + </tr> + <tr> + <td><code>view</code> {{readonlyInline}}</td> + <td>{{domxref("WindowProxy")}}</td> + <td>{{domxref("Document.defaultView")}} (objet <code>window</code> du document)</td> + </tr> + <tr> + <td><code>detail</code> {{readonlyInline}}</td> + <td><code>long</code> (<code>float</code>)</td> + <td>0.</td> + </tr> + </tbody> +</table> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="Temporisation_des_évènements_scroll">Temporisation des évènements scroll</h3> + +<p>Comme les évènements <code>scroll</code> peuvent être émis à une fréquence élevée, le gestionnaire d’évènements ne devrait pas effectuer des opérations coûteuses en termes de puissance de calcul, telles que des modification du DOM. À la place, il est recommandé de temporiser l’évènement en utilisant {{domxref("window.requestAnimationFrame()", "requestAnimationFrame()")}}, {{domxref("window.setTimeout()", "setTimeout()")}} ou un {{domxref("CustomEvent")}}, comme suit.</p> + +<p>Notez, cependant, que les évènements d’interface utilisateur et les frames d’animation sont émises à peu près à la même fréquence, et ainsi l’optimisation qui suit est souvent superflue. Cet exemple optimise l’évènement <code>scroll</code> avec <code>requestAnimationFrame</code>.</p> + +<pre class="brush: js">// Référence: http://www.html5rocks.com/en/tutorials/speed/animations/ + +var derniere_position_de_scroll_connue = 0; +var ticking = false; + +function faireQuelqueChose(position_scroll) { + // faire quelque chose avec la position du scroll +} + +window.addEventListener('scroll', function(e) { + derniere_position_de_scroll_connue = window.scrollY; + + if (!ticking) { + window.requestAnimationFrame(function() { + faireQuelqueChose(derniere_position_de_scroll_connue); + ticking = false; + }); + } + + ticking = true; +});</pre> + +<h3 id="Autres_exemples">Autres exemples</h3> + +<p>Pour plus d’exemples similaires, voir l’évènement <a href="/en-US/docs/Web/Events/resize#Example">resize</a>.</p> + +<h2 id="Spécifications">Spécifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td>Spécification</td> + <td>État</td> + </tr> + <tr> + <td>{{SpecName('CSSOM View', '#scrolling-events')}}</td> + <td>{{Spec2('CSSOM View')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> + +<p>{{Compat("api.Document.scroll_event")}}</p> + +<h2 id="Voir_aussi">Voir aussi</h2> + +<ul> + <li>{{domxref("GlobalEventHandlers.onscroll")}}</li> +</ul> |