2012-02-15 16 views
7

Con el siguiente código, estoy tratando de encontrar cuando el usuario se desplaza a la parte inferior de la página. En JQuery mobile.jQuery Mobile Usuario de desplazamiento hacia abajo

$(window).scroll(function(){ 
    if($(window).scrollTop() == $(document).height() - $(window).height()){ 
      alert("The Bottom"); 
    } 
}); 

Por ahora solo quiero que salga que han llegado al final.

Mi problema es que cuando se carga el sitio, se dará salida a este mensaje. Cuando me desplazo hacia abajo, saldrá la alerta.

¿Hay una manera de detenerlo haciendo para cuando la página se ha cargado y sólo lo hacen cuando el usuario ha desplazado físicamente a la página?

Gracias

Respuesta

7

¿Es porque su contenido es más corto que su página? Lo que significa que cuando se carga, ya estás en la parte inferior. He tratado de replicar su problema aquí http://jsfiddle.net/qESXR/2/ y se comporta como desea. Sin embargo, si acorto el contenido y lo ejecuto localmente en mi máquina, obtengo el mismo resultado que tiene.
Si es así, usted podría comprobar la altura de la página vs altura de su html usando estos

$(window).height(); // returns height of browser viewport 

$(document).height(); // returns height of HTML document 

así:

$(window).scroll(function(){ 
    if($(document).height() > $(window).height()) 
    { 
     if($(window).scrollTop() == $(document).height() - $(window).height()){ 
      alert("The Bottom"); 
     } 
    } 
}); 
+0

Sí, los datos se cargan en forma dinámica. entonces la carga inicial está vacía, pero una vez que los datos se insertan en el DOM, obviamente se expande. –

+0

Parece que necesita agregar el desplazamiento dinámicamente después de cargar el contenido. Si es así, aquí hay un buen recurso http://stackoverflow.com/questions/4306387/jquery-add-and-remove-window-scrollfunction – davehale23

+0

¡Muchas gracias! esto me ha estado volviendo loco! –

1

El problema es que page widget trata de jQuery Mobile cada "página" como la ventana en lo que se refiere al desplazamiento. Para detectar cuando el usuario se haya desplazado hasta el final, obligar a la función de desplazamiento para $(document) lugar:

http://jsfiddle.net/5x6T2/

$(document).scroll(function() { 
    if ($(window).scrollTop() + $(window).height() == $(document).height()) { 
     alert("Bottom reached!"); 
    } 
}); 
Cuestiones relacionadas