¿Cómo obtengo la posición de desplazamiento de un documento?

¿Cómo obtener el valor de posición de desplazamiento de un documento?

$(document).height() //returns window height $(document).scrollTop() //returns scroll position from top of document 

Aquí le mostramos cómo obtener el scrollHeight de un elemento obtenido con un selector jQuery:

 $(selector)[0].scrollHeight 

Si selector es el ID del elemento (por ejemplo, elemId ), se garantiza que el elemento indexado en 0 de la matriz será el elemento que desea seleccionar y scrollHeight será correcto.

Si está utilizando Jquery 1.6 o superior, use prop para acceder al valor.

 $(document).prop('scrollHeight') 

Las versiones anteriores solían obtener el valor de attr, pero no de la publicación 1.6.

 document.getElementById("elementID").scrollHeight $("elementID").scrollHeight 

Utiliza elementos DOM de HTML, pero no el selector jQuery. Se puede utilizar como:

 var height = document.body.scrollHeight; 

Algo como esto debería resolver su problema:

 $.getDocHeight = function(){ var D = document; return Math.max(Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), Math.max(D.body.clientHeight, D.documentElement.clientHeight)); }; alert( $.getDocHeight() ); 

Ps: llame a esa función cada vez que la necesite, la alerta es para propósitos de prueba.

Para obtener la altura real desplazable de las áreas desplazadas por la barra de desplazamiento de la ventana, usé $('body').prop('scrollHeight') . Esta parece ser la solución de trabajo más simple, pero no he comprobado exhaustivamente la compatibilidad. Emanuele Del Grande señala en otra solución que probablemente esto no funcione para IE por debajo de 8.

La mayoría de las otras soluciones funcionan bien para elementos desplazables, pero esto funciona para toda la ventana. Notablemente, tuve el mismo problema que Michael para la solución de Ankit, a saber, que $(document).prop('scrollHeight') está regresando undefined .

Prueba esto:

 var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight; 

Puedes probar esto, por ejemplo, este código coloca la barra de desplazamiento en la parte inferior para todas las tags DIV

Recuerde: jQuery puede aceptar una función en lugar del valor como argumento. “este” es el objeto tratado por jQuery, la función devuelve la propiedad scrollHeight del DIV actual “esto” y lo hace para todos los DIV en el documento.

 $("div").scrollTop(function(){return this.scrollHeight})