--- title: scroll slug: Web/API/Document/scroll_event translation_of: Web/API/Document/scroll_event ---
El evento scroll
se produce cuando la vista del documento o un elemento es deslizado.
Property | Type | Description |
---|---|---|
target {{readonlyInline}} |
EventTarget |
El objetivo de evento (el objetivo superior en el árbol DOM). |
type {{readonlyInline}} |
DOMString |
El tipo de evento. |
bubbles {{readonlyInline}} |
Boolean |
Si el evento burbujea o no. |
cancelable {{readonlyInline}} |
Boolean |
Si el evento puede ser cancelado o no. |
view {{readonlyInline}} |
WindowProxy |
document.defaultView (window de el documento) |
detail {{readonlyInline}} |
long (float ) |
0. |
Dado que los eventos scroll
pueden ejecutarse a un ritmo elevado, el event handler no debería ejecutar operaciones computacionalmente costosas como modificaciones en el DOM. En cambio, se recomienda acelerar el evento utilizando requestAnimationFrame, setTimeout or customEvent, de este modo:
// Referencia: http://www.html5rocks.com/en/tutorials/speed/animations/ var last_known_scroll_position = 0; var ticking = false; function doSomething(scroll_pos) { // Hacer algo con la posición del scroll } window.addEventListener('scroll', function(e) { last_known_scroll_position = window.scrollY; if (!ticking) { window.requestAnimationFrame(function() { doSomething(last_known_scroll_position); ticking = false; }); } ticking = true; });
Más ejemplos se pueden ver en el evento resize.
En iOS UIWebViews, los eventos scroll
no se ejecutan mientras el escroleo/deslizamiento se lleva a cabo; solo son ejecutados cuando el deslizamiento terminó. Ver Bootstrap issue #16202. Safari y WKWebViews no se ven afectados por este bug.