¿Cómo obtener el valor de la posición de desplazamiento de un documento?
82
$(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 ejemploelemId
), se garantiza que el elemento indexado en 0 de la matriz será el elemento que desea seleccionar yscrollHeight
será correcto.fuente
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.
fuente
document.getElementById("elementID").scrollHeight $("elementID").scrollHeight
fuente
Utiliza HTML DOM Elements, pero no jQuery selector. Se puede usar como:
var height = document.body.scrollHeight;
fuente
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.
fuente
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á regresandoundefined
.fuente
Prueba esto:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
fuente
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})
fuente