Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calculer la taille d'une scrollbar

Sujet résolu
    26 mai 2010 à 16:15:49

    Bonjour,

    Je souhaite pouvoir déplacer le contenu d'un div grâce à une barre de scroll entièrement en JavaScript. Pour cela, j'utilise l'attribut objet.scrollTop que j'augmente ou diminue en fonction du mouvement.

    Seulement, pour que le système soit réel, il faudrait que la taille de la scrollbar soit proportionnelle à celle du contenu. C'est la raison pour laquelle je vous pose cette question :
    Comment obtenir la taille de cette scrollbar ?

    Sachant que je peux obtenir la taille du contenu (objet.scrollHeight ) et la hauteur du div (500px)


    Merci à vous pour vos réponses.
    • Partager sur Facebook
    • Partager sur Twitter
    Développeur Front-End freelance disponible pour contrats ! En guerre contre l'utilisation abusive de jQuery.
      26 mai 2010 à 16:28:02

      Un truc genre scrollhandle.height = div.height/object.scrollHeight*div.height devrait marcher à vue de nez.
      • Partager sur Facebook
      • Partager sur Twitter
        26 mai 2010 à 16:29:32

        Faut dire que j'ai déjà essayé pas mal de trucs, mais je vais tester ça à mon retour (aller chercher le passeport oblige...) ;)

        Edit : ta solution a l'air de marcher pour la hauteur, mais je merde à présent pour le "pas" (le nombre de pixels à déplacer à chaque descente).
        Le div descend de 10 pixels à chaque fois, mais si la barre descend aussi de 10 pixels, ca ne va pas.

        Edit 2 : J'ai réussi, le mets donc le code à disposition :
        function taille(id,div)
        {
        	var handle = document.getElementById(id);
        	var div = document.getElementById(div);
        	handle.style.height = (parseInt(div.style.height) / div.scrollHeight) * parseInt(div.style.height);
        }
        
        function descendre(id,div)
        {
        	var pas = 10;
        	var handle = document.getElementById(id);
        	var div = document.getElementById(div);
        	div.scrollTop += pas;
        	handle.style.top = parseInt(handle.style.top) + (parseInt(div.style.height) / div.scrollHeight) * pas;
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
        Développeur Front-End freelance disponible pour contrats ! En guerre contre l'utilisation abusive de jQuery.
          27 mai 2010 à 1:01:33

          Pense à mettre ton sujet en résolu à l'aide du bouton approprié ;)
          • Partager sur Facebook
          • Partager sur Twitter
            27 mai 2010 à 12:20:57

            Exact ;)

            Je mets aussi la réponse de Sephiran comme m'ayant aidé.
            • Partager sur Facebook
            • Partager sur Twitter
            Développeur Front-End freelance disponible pour contrats ! En guerre contre l'utilisation abusive de jQuery.

            Calculer la taille d'une scrollbar

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown