$(window).scrollTop() vs. $(document).scrollTop()
They are both going to have the same effect.
However, as pointed out in the comments: $(window).scrollTop()
is supported by more web browsers than $('html').scrollTop()
.
First, you need to understand the difference between window
and document
. The window
object is a top level client side object. There is nothing above the window
object. JavaScript is an object orientated language. You start with an object and apply methods to its properties or the properties of its object groups. For example, the document
object is an object of the window
object. To change the document
's background color, you'd set the document
's bgcolor
property.
window.document.bgcolor = "red"
To answer your question, There is no difference in the end result between window
and document
scrollTop
. Both will give the same output.
Check working example at http://jsfiddle.net/7VRvj/6/
In general use document
mainly to register events and use window
to do things like scroll
, scrollTop
, and resize
.
Cross browser way of doing this is
var top = ($(window).scrollTop() || $("body").scrollTop());