I have a div with position \"fixed\" and I want to get the value of its position relative to the whole document while the user scrolls down the page.
So
you can use .offset()
to get the current coordinates of the element relative to the document whereas .position()
to get the current coordinates of an element relative to its offset parent.
Unless you refresh the page and the scrollbar is at a different position at the moment it initialize.
($("div").offset().top - $(document).scrollTop())
.offset() gives you the coordinates relative to the whole document.
The .offset() method allows us to retrieve the current position of an element relative to the document. Contrast this with .position(), which retrieves the current position relative to the offset parent. When positioning a new element on top of an existing one for global manipulation (in particular, for implementing drag-and-drop), .offset() is the more useful.
.offset() returns an object containing the properties top and left.
Note: jQuery does not support getting the offset coordinates of hidden elements or accounting for borders, margins, or padding set on the body element.