The Element.scrollTop property gets or sets the number of pixels that an element's content is scrolled vertically.

An element's scrollTop value is a measurement of the distance from the element's top to its topmost visible content. When an element's content does not generate a vertical scrollbar, then its scrollTop value is 0.

When scrollTop is used on the root element (the <html> element), the scrollY of the window is returned. This is a special case of scrollTop.

On systems using display scaling, scrollTop may give you a decimal value.


// Get the number of pixels scrolled.
var intElemScrollTop = someElement.scrollTop;

After running this code, intElemScrollTop is an integer corresponding to the number of pixels that the element's content has been scrolled upwards.

// Set the number of pixels scrolled.
element.scrollTop = intValue;

scrollTop can be set to any integer value, with certain caveats:

  • If the element can't be scrolled (e.g. it has no overflow or if the element has a property of "non-scrollable"), scrollTop is 0.
  • scrollTop doesn't respond to negative values; instead, it sets itself back to 0.
  • If set to a value greater than the maximum available for the element, scrollTop settles itself to the maximum value.



If you can see this, scrollTop = 0

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

If you can see this, scrollTop is > 0

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

If you can see this, scrollTop is maxed-out


Left Top Right Bottom margin-top margin-bottom border-top border-bottom


CSSOM View Module (CSSOM View)
# dom-element-scrolltop

Browser compatibility

BCD tables only load in the browser

See also