2012-09-24 19 views
5

Duplicar posible:
Javascript: do an action after user is done scrollingCómo saben evento de desplazamiento ha terminado con jQuery

los Scroll activa el evento cuando el usuario comienza a desplazarse a la página, ¿verdad? ¿Cómo saber si él terminó entonces? Quiero llamar a una función después de que ha hecho el desplazamiento. ¿Alguien tiene alguna idea?

Gracias!

P.S. Con jQuery, por favor, pero JS puro también está bien.

+0

No. Un evento 'scroll' se dispara cada vez que la página se mueve un solo píxel. Mira [evento de desplazamiento de fuego solo una vez por segundo] (http://stackoverflow.com/q/9613594/1048572) – Bergi

+0

@ FrançoisWahl No quiero usar $ .doTimeout – Mahdi

+0

@Bergi gracias, pero ¿tienes alguna referencia? ¿para eso? Parece que solo se dispara cuando empiezas a desplazarte y no continuamente ... – Mahdi

Respuesta

8

Puede lograrlo usando setTimeout. puede cambiar el valor de tiempo de espera (im usando 100) de acuerdo con sus requisitos.

var timeoutId; 
$(selector).scroll(function(){ 
    if(timeoutId){ 
     clearTimeout(timeoutId); 
    } 
    timeoutId = setTimeout(function(){ 
    // your code 
    }, 100); 

}); 
+0

Gracias, ¿Hay alguna otra forma, excepto la configuración de tiempos de espera? Me refiero a algo nativo y originalmente para eso? – Mahdi

+1

tiempo de espera * son * nativos, no es ningún complemento. –

+0

@Mahdi en este momento no es. – Christoph

Cuestiones relacionadas