¿Cómo obtener el valor de la posición de desplazamiento de un documento?
Respuestas:
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
scrollHeight
.
A continuación, se explica cómo obtener el valor scrollHeight
de un elemento obtenido mediante un selector de 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 la publicación 1.6.
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
Algo como esto debería resolver tu 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 fines de prueba.
Para obtener la altura de desplazamiento real de las áreas desplazadas por la barra de desplazamiento de la ventana, utilicé $('body').prop('scrollHeight')
. Esta parece ser la solución de trabajo más simple, pero no he verificado ampliamente la compatibilidad. Emanuele Del Grande señala en otra solución que esto probablemente no funcionará 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. En particular, tuve el mismo problema que Michael para la solución de Ankit, es decir, que $(document).prop('scrollHeight')
está regresando undefined
.
Prueba esto:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
Puede probar esto, por ejemplo, este código coloca la barra de desplazamiento en la parte inferior para todas las etiquetas DIV
Recuerde: jQuery puede aceptar una función en lugar del valor como argumento. "this" es el objeto tratado por jQuery, la función devuelve la propiedad scrollHeight del DIV actual "this" y lo hace para todos los DIV en el documento.
$("div").scrollTop(function(){return this.scrollHeight})