Element.scrollTop

La propriété Element.scrollTop permet d'obtenir ou de définir le nombre de pixels sur lesquels le contenu a défilé verticalement.

La valeur scrollTop d'un élément correspond à la distance entre le haut de l'élément et la partie la plus haute de son contenu visible. Lorsque le contenu d'un élément n'entraîne pas la création d'une barre de défilement verticale, la valeur de scrollTop est 0.

Lorsque scrollTop est utilisé sur l'élément racine (c'est-à-dire l'élément <html>), c'est la valeur de scrollY pour la fenêtre qui est renvoyée. Il s'agit d'un cas aux limites pour scrollTop.

Attention : Pour les systèmes qui utilisent un affichage mis à l'échelle (display scaling), scrollTop peut fournir une valeur décimale.

Syntaxe

js
// Obtenir le nombre de pixels qui ont défilé.
var intElemScrollTop = someElement.scrollTop;

Après avoir exécuté le code ci-dessus, intElemScrollTop sera un entier correspondant au nombre de pixels pour lesquels le contenu de l'élément a défilé vers le haut.

js
// Définir le nombre de pixels à faire défiler.
element.scrollTop = intValue;

scrollTop peut être défini avec n'importe quelle valeur entière. Cependant :

  • S'il n'est pas possible de faire défiler l'élément (s'il ne dépasse d'aucune façon ou si une de ses propriétés le fixe ainsi), scrollTop vaudra toujours 0.
  • scrollTop ne permet pas d'utiliser des valeurs négatives. Il revient à 0.
  • Si la valeur utilisée est supérieure à la valeur maximale possible pour l'élément, scrollTop prendra cette valeur maximale possible.

Exemple

HTML

html
<div id="container">
  <div id="content">
    Utilisez le bouton :) Lorem ipsum dolor sit amet consectetur adipisicing
    elit. Inventore harum adipisci earum placeat itaque, minima neque ipsam,
    incidunt corporis quod magnam corrupti, ut fugiat beatae quis dolor. Nisi,
    distinctio repellat!! Lorem ipsum dolor sit amet consectetur adipisicing
    elit. Inventore harum adipisci earum placeat itaque, minima neque ipsam,
    incidunt corporis quod magnam corrupti, ut fugiat beatae quis dolor. Nisi,
    distinctio repellat!! Lorem ipsum dolor sit amet consectetur adipisicing
    elit. Inventore harum adipisci earum placeat itaque, minima neque ipsam,
    incidunt corporis quod magnam corrupti, ut fugiat beatae quis dolor. Nisi,
    distinctio repellat!! Lorem ipsum dolor sit amet consectetur adipisicing
    elit. Inventore harum adipisci earum placeat itaque, minima neque ipsam,
    incidunt corporis quod magnam corrupti, ut fugiat beatae quis dolor. Nisi,
    distinctio repellat!! Lorem ipsum dolor sit amet consectetur adipisicing
    elit. Inventore harum adipisci earum placeat itaque, minima neque ipsam,
    incidunt corporis quod magnam corrupti, ut fugiat beatae quis dolor. Nisi,
    distinctio repellat!! Lorem ipsum dolor sit amet consectetur adipisicing
    elit. Inventore harum adipisci earum placeat itaque, minima neque ipsam,
    incidunt corporis quod magnam corrupti, ut fugiat beatae quis dolor. Nisi,
    distinctio repellat!!
  </div>
</div>

<button id="slide" type="button">Défilez vers le bas</button>

CSS

css
#container {
  height: 100px;
  border: 1px solid #ccc;
  overflow-y: scroll;
}

#content {
  background-color: #ccc;
}

JavaScript

js
const button = document.getElementById("slide");

button.onclick = function () {
  document.getElementById("container").scrollTop += 20;
};

Résultat

Spécifications

Specification
CSSOM View Module
# dom-element-scrolltop

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi