Qué es Generador de snippet scrollend?
El evento scrollend es un evento nativo del navegador que se dispara cuando el desplazamiento se ha completado totalmente, incluyendo desplazamiento con impulso, rebote y decaimiento de inercia. A diferencia del evento scroll que se dispara continuamente durante el desplazamiento, o los manejadores scroll con debounce que adivinan cuándo se detuvo el desplazamiento basándose en timeouts arbitrarios, scrollend se dispara exactamente una vez cuando el gesto de desplazamiento del usuario ha terminado realmente. El evento se dispara tanto para desplazamiento programático (scrollTo, scrollBy, scrollIntoView) como para desplazamiento iniciado por el usuario mediante toque, rueda del ratón, teclado o trackpad. Baseline 2025, compatible con Chrome 114+, Edge 114+, Safari 17.5+ y Firefox 131+.
Respuesta rápida
El evento scrollend se dispara cuando el desplazamiento se ha completado totalmente incluyendo impulso, inercia y rebote. A diferencia de los manejadores scroll con debounce que adivinan el final del desplazamiento con timeouts arbitrarios, scrollend es una señal nativa del navegador que se dispara exactamente una vez en la posición final real de desplazamiento. Baseline 2025 (Chrome 114+, Safari 17.5+, Firefox 131+). Úselo para activación precisa de scroll infinito, actualizaciones de interfaz basadas en posición de desplazamiento e impresiones de analítica.
Last updated: 2026-06-02
Limitaciones
- scrollend solo se dispara en elementos con desbordamiento desplazable real. Los elementos con overflow:scroll pero sin contenido que exceda sus dimensiones nunca dispararán scrollend. Verifique siempre que el elemento tenga contenido desplazable antes de confiar en el evento.
- scrollend no se dispara durante el desplazamiento continuo: solo señala finalización. Para seguimiento de desplazamiento en tiempo real durante el gesto de desplazamiento, todavía necesita el evento scroll combinado con requestAnimationFrame para actualizaciones suaves.
- scrollend puede no dispararse para desplazamiento programático interrumpido: si una llamada scrollTo o scrollBy es interrumpida por otra llamada scroll antes de completarse, el scrollend pendiente puede cancelarse. Encadene acciones dependientes dentro del callback del handler scrollend en lugar de asumir que siempre se ejecutará.
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
Cómo usar esta herramienta
- Seleccione el tipo de fragmento: listener scrollend básico con destino elemento o window, scrollend con registro de posición de desplazamiento, o una comparación lado a lado de scrollend versus scroll con debounce.
- Configure el destino de desplazamiento: window (desplazamiento a nivel de documento) o un elemento específico con overflow:auto o overflow:scroll.
- Personalice la acción del handler: registrar la posición final de desplazamiento, actualizar un elemento de la interfaz, cargar más contenido al final o activar una animación cuando el desplazamiento se detenga.
- Copie el fragmento JavaScript generado y péguelo en su proyecto. El fragmento de comparación muestra ambos enfoques con etiquetas de tiempo para que pueda ver la diferencia en una demostración en vivo.
Para qué puedes usarla
- Activar la carga de contenido de scroll infinito solo cuando el usuario se ha detenido realmente de desplazarse, evitando cargas múltiples durante el desplazamiento con impulso.
- Actualizar una tabla de contenidos fija o un indicador de progreso de desplazamiento en la posición final exacta, no durante posiciones intermedias.
- Disparar eventos de analítica o seguimiento de impresiones cuando el usuario termina de desplazarse a una sección, asegurando una medición precisa sin doble conteo.