Element.scrollTop
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.
Warning: On systems using display scaling, scrollTop may give you a decimal value.
Syntax
// 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"),
scrollTopis0. -
scrollTopdoesn't respond to negative values; instead, it sets itself back to0. - If set to a value greater than the maximum available for the element,
scrollTopsettles itself to the maximum value.
Examples
Scrolling an element
In this example, try scrolling the inner container with the dashed border, and see how the value of scrollTop changes.
HTML
<div id="container"> <div id="scroller"> <p>Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-two million miles is an utterly insignificant little blue green planet whose ape-descended life forms are so amazingly primitive that they still think digital watches are a pretty neat idea.</p> </div> </div> <div id="output">scrollTop: 0</div>
CSS
#scroller { overflow: scroll; height: 150px; width: 150px; border: 5px dashed orange; } #output { padding: 1rem 0; }
JavaScript
const scroller = document.querySelector("#scroller"); const output = document.querySelector("#output"); scroller.addEventListener("scroll", event => { output.textContent = `scrollTop: ${scroller.scrollTop}`; });
Result
Specifications
| Specification |
|---|
| CSSOM View Module (CSSOM View) # dom-element-scrolltop |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
scrollTop |
1 |
12 |
1 |
5 |
8 |
1 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop