[Javascript] Obtenir la valeur du scroll (top)

Résolu/Fermé
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 - Modifié par electroking le 27/12/2016 à 11:44
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 - 27 déc. 2016 à 15:26
Salut à tous,
Je cherche une fonction javascript qui retourne la valeur du scroll par rapport au top de la page en pixel.

J'ai déjà trouvé ça :
function getScroll()
{
return element.scrollTop;
}

Mais c'est "element" qui gène, je sais pas quoi mettre à la place.
Cordialement,
Faure Lucas.

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
27 déc. 2016 à 13:48
Bonjour,

scrollTop: Définit ou obtient le nombre de pixels dont le contenu de l'élément a défilé vers le haut.

https://www.w3schools.com/jsref/prop_element_scrolltop.asp

Exemple :
var elmnt = document.getElementById("myDIV");
var y = elmnt.scrollTop;

0
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 6
Modifié par electroking le 27/12/2016 à 14:52
Merci pour ta réponse,
Malheureusement j'ai beau lire ce tuto de long en large, je n'arrive décidément à rien !

Voici mon code HTML :
<html>
 <head>
  <link rel="stylesheet" type="text/css" href="style.css"/>
  <script src="script.js" type="text/javascript"></script>
 </head>
 <body onload="javascript: main();">
  <span id="scrollStatus">x</span>
  <div class="body">
  </div>
 </body>
</html>

Mon CSS :
body {
 background-color: #e4e4e4;
}

.body {
 background-color: #ffffff;
 border: 3px solid #333;
 margin: auto;
 margin-top: 5%;
 min-height: 1480px;
 min-width: 680px;
 padding: 0;
 width: 60%;
}

#scrollStatus {
 left: 0;
 position: fixed;
 top: 0;
}

Et mon code Javascript :
function main()
{
 setInterval(getScrolled(),0);
}

function getScrolled()
{
 var elmnt = document.body;
 var y = elmnt.scrollTop;
 document.getElementById('scrollStatus').innerHTML = y;
}

Je ne comprend pas pourquoi, cela me retourne toujours "0".

Bien sur, mon body est plus grand que ma page, j'ai donc bien une barre de scroll mais quand je descend, la valeur du scrollTop ne change pas ...
0
electroking Messages postés 234 Date d'inscription dimanche 14 septembre 2014 Statut Membre Dernière intervention 22 juin 2021 6
27 déc. 2016 à 15:26
Ah c'est bon en fait j'ai réussi !
Avec
document.body.scrollTop
Et
document.documentElement.scrollTop
0