siempre y cuando su cheque actual está disparando cuando desplazado hasta la parte inferior de la página, puede intentar algunos aritméticas básicas:
if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.7){
//where 0.7 corresponds to 70% --^
Asegúrese de añadir una comprobación para no disparar múltiples peticiones Ajax simultáneas, si aún no lo hiciste
esto se sale del alcance de la pregunta, pero si quieres un ejemplo de cómo prevenir múltiples peticiones de ser despedido de forma simultánea:
declarar una var global, por ejemplo, processing
.
Entonces incorporarlo en su función:
if (processing)
return false;
if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.7){
processing = true; //sets a processing AJAX request flag
$.post("url", '<params>', function(data){ //or $.ajax, $.get, $.load etc.
//load the content to your div
processing = false; //resets the ajax flag once the callback concludes
});
}
Eso es un ejemplo sencillo de usar un var para realizar un seguimiento si hay una petición Ajax activo para su función de desplazamiento o no, y que no interfiera con cualquier otra solicitud concurrente de Ajax que pueda tener.
Editar: JSFiddle example
Tenga en cuenta que el uso de un% para medir la altura del documento podría ser una mala idea, teniendo en cuenta que la altura del documento aumentará cada vez que cargue algo, por lo que es desencadenar la petición Ajax siendo relativamente más lejos de la parte inferior de la página (tamaño absoluto)
le recomiendo usar un valor fijo de compensación para evitar que (200-700 o así):
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 700){
// pixels offset from screen bottom --^
Ejemplo: JSFiddle
Editar: para reproducir el problema en el primer código con porcentajes, cargue 50 div
s en él. Cuando carga el siguiente div
, agregará solo un 2% a la altura total del documento, lo que significa que la siguiente solicitud se activará tan pronto como vuelva a desplazar estos 2% al 70% de la altura del documento. En mi ejemplo fijo, el desplazamiento inferior definido cargará contenido nuevo solo cuando el usuario se encuentre en un rango definido de píxeles absolutos desde la parte inferior de la pantalla.
Investigación más .. – Niranjan