Reputation: 9645
How to get the scroll position value of a document?
Upvotes: 82
Views: 234686
Reputation: 1161
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
Upvotes: 48
Reputation: 1
You can try this for example, this code put the scrollbar at the bottom for all DIV tags
Remember: jQuery can accept a function instead the value as argument. "this" is the object treated by jQuery, the function returns the scrollHeight property of the current DIV "this" and do it for all DIV in the document.
$("div").scrollTop(function(){return this.scrollHeight})
Upvotes: 0
Reputation: 559
Try this:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
Upvotes: 1
Reputation: 61
It uses HTML DOM Elements, but not jQuery selector. It can be used like:
var height = document.body.scrollHeight;
Upvotes: 6
Reputation: 2109
Here's how to get the scrollHeight
of an element obtained using a jQuery selector:
$(selector)[0].scrollHeight
If selector
is the id of the element (e.g. elemId
), it is guaranteed that the 0-indexed item of the array will be the element you wish to select, and scrollHeight
will be correct.
Upvotes: 177
Reputation: 36521
To get the actual scrollable height of the areas scrolled by the window scrollbar, I used $('body').prop('scrollHeight')
. This seems to be the simplest working solution, but I haven't checked extensively for compatibility. Emanuele Del Grande notes on another solution that this probably won't work for IE below 8.
Most of the other solutions work fine for scrollable elements, but this works for the whole window. Notably, I had the same issue as Michael for Ankit's solution, namely, that $(document).prop('scrollHeight')
is returning undefined
.
Upvotes: 3
Reputation: 11876
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
Upvotes: 6
Reputation: 6654
If you are using Jquery 1.6 or above, use prop to access the value.
$(document).prop('scrollHeight')
Previous versions used to get the value from attr but not post 1.6.
Upvotes: 45
Reputation: 16269
Something like this should solve your problem:
$.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: Call that function every time you need it, the alert is for testing purposes..
Upvotes: 3