IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Position de la scrollbar dans un div


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Position de la scrollbar dans un div
    Bonjour,

    Tout d'abord, puisque c'est la "saison", je vous présente mes meilleurs voeux pour 2005.

    Pour ma part, je recommence le boulot en reprenant un "problème" que j'ai rencontré juste avant de partir en congés. Celui-ci avait déjà été traité dans ce forum (http://www.developpez.net/forums/viewtopic.php?t=255051) mais malheureusement les solutions proposées ne m'ont pas permis de résoudre mon souci.
    J'ai essayé de relancer le sujet mais comme il était marqué comme résolu personne n'a du y faire attention ...

    Je me permet donc de poser à nouveau ma question.

    En gros, pour résumer la situation :

    - J'ai dans un formulaire un div dont le contenu (dynamique et potentiellement différent à chaque chargement de la page) dépasse dans certains cas la largeur. Je voudrais positionner la scrollbar qui apparait dans ce cas là pour qu'au chargement de la page ce soit la partie droite du div qui soit visible par exemple.

    - mon div est dans le formulaire d'une jsp contenue dans un layout qui est lui même une jsp ... bla bla bla ... Le seul endroit où je peux mettre du spécifique à mon div est la jsp.

    - le div est défini comme suit :
    <div id="scrollImages" style="overflow-x:scroll">

    - juste après la fin du formulaire, j'appelle une fonction javascript qui redimensionne certains div dont 'scrollImages'. Comme j'ai une largeur limite pour mon div, c'est là que le contenu peut parfois être plus large que cette limite.

    Le problème, c'est que ma scrollbar est toujours calée à gauche. Je me suis rendu compte que quand je fais un 'alert("scrollWidth : " + document.getElementById('scrollImages').scrollWidth);' dans ma fonction javascript, j'obtiens 0 !!!

    Par contre, si je rajoute un bouton
    <input type="button" value="scrollWidth" onclick="alert(document.getElementById('scrollImages').scrollWidth)" />
    pour voir par la suite la largeur de ma scrollbar, j'obtiens une taille qui ressemble à quelque chose ...

    Je ne suis pas un expert en javascript et j'ai un peu du mal à comprendre ce qui se passe.
    J'espère donc que vous pourrez m'aider.
    Merci d'avance

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Si j'ai bien compris, tu veux que ta barre de scroll soit toujours défilée au maximum pour faire apparaître la partie de droite du contenu.
    Voici un petit exemple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <html>
    <head>
    <script language="javascript">
    function adjustDiv()
    {
     var target=document.getElementById('theDiv');
     if(!target) return;
     target.scrollLeft=target.scrollWidth;
     //Tu mets le scrollLeft au max dans tous les cas
    }
    </script>
    </head>
    <body onload="adjustDiv()">
    <div id="theDiv" style="position:absolute;height:50px;width:100px;overflow:auto"><nobr>
    une donnée plus large que 100 px
    </div>
    </body>
    </html>
    J'ai appelé la fonction adjustDiv au chargement de la page mais tu peux l'appeler quand bon te semblera bien sûr.

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse.

    J'avais pensé à cette solution mais je n'avais pas encore essayé de la mettre en oeuvre car je voulais éviter d'appeler une fonction javascript dans le onload du body.
    En effet, je n'ai peut-être pas été très clair dans mon explication mais le body de ma page est dans ce que j'ai appelé le layout qui est générique à toutes les pages de l'appli et je voulais éviter d'avoir à définir une fonction javascript vide dans toutes les jsp venant s'y "insérer" alors que seule l'une d'entre elle nécessite ce traitement spécifique.

    Ceci dit, je ne crois pas en fin de compte qu'il y a de solution plus propre.

    J'avais trouvé une magouille qui consistait à appeler une fonction de positionnement de la scrollbar à la fin de ma jsp, après celle de redimensionnement, sauf que cette nouvelle fonction était appelé avec un 'settimeout', ce qui "laissait le temps" à la page de s'afficher. Les dimensions du div et de sa scrollwidth étaient alors connues et ça marchait. Mais bon, on est d'accord, c'était pas classe du tout ...

    Bref, tout ça pour dire que j'ai finalement appliqué la méthode "propre" : appel d'une fonction javascript dans le onload et définition de cette fonction dans toutes mes jsp avec du code dedans lorsque celà est nécessaire . Et puis finalement ça pourra peut-être me servir si j'ai besoin de faire du spécifique sur une autre page.

    Et donc ça marche comme je le souhaitais.
    Merci stephaneey.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [css] scrollbar dans un div
    Par tooms2028 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 17/06/2007, 09h18
  2. scrollbar dans un div
    Par bouclette dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/10/2006, 14h10
  3. gestion d'une scrollbar dans une div
    Par duge dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/08/2006, 13h54
  4. Position d'une ScrollBar dans un TRichEdit (ou TMemo)
    Par Troll dans le forum C++Builder
    Réponses: 9
    Dernier message: 24/02/2005, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo