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 :

Menu horizontal centrer automatiquement l’élément selectionné


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut Menu horizontal centrer automatiquement l’élément selectionné
    Bonjour,

    j'ai un menu horizontal avec 10 categories, il y a 3 ou 4 categories visible à l'ecran, on peux scroller horizontalement pour voir les autres categorie.


    je vous explique mon problème,j'ai un menu horizontal avec la possibilité de scroller sur ce menu car il n'est pas affiché entièrement à l’écran.

    j'aimerai que lorsque je clique sur un element du menu pouvoir automatiquement centrer cette element sur ma page.

    c'est à dire, j'ai un menu "actu , news , france, monde, cinema , rub1, rub2.

    quand je vais cliquer sur cinema j'aimerai faire slider ma vue pour que cinema soit au millieu de ma page....

    voici mon code pour le moment:
    si vous pensez que je mis prend mal, je suis preneur d'autre solution.


    html
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     <div id="menuContainer">
        <nav id="menu">
          <ul>
            <li><a href="#">actu</a></li>
            <li><a href="#">news</a></li>
            <li><a href="#">france</a></li>
            <li><a href="#">monde</a></li>
            <li><a href="#">cinema</a></li>
            <li><a href="#">rub1</a></li>
            <li><a href="#">rub2</a></li>
          </ul>
        </nav>
      </div>


    css
    Code css : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #menuContainer{
        width: 100%;
        overflow-x: scroll;
        white-space: nowrap;
    }
     
    #black{
        width:100%;
        height: 20px;
        background-color: black;
        position:relative;
    }
     
    nav ul {
        list-style: none;
        float:left;
        margin: 0;
        padding: 0;
        background-color: black;
        /*height: 24px;*/
        white-space:nowrap;
    }
     
    nav ul li {
        display:inline-block;
        padding: 0px 20px 5px 10px;
        height: 24px;
    }
     
    nav ul li a {
        color: #EFD3D3;
        text-decoration: none;
        font-size: 13px;
        font-weight: bold;
    }

    je vous remercie d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    en jouant sur le srcollTop

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut
    mon menu est horizontal c'est à dire scrolltop.

    en faite quand je clic sur n' importe quelle element je veux que mon scroll ce fasse est que mon element soit centrer dans ma vue sans changer le positionnement de mes categorie du menu

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonjour,
    regarde peut être du coté de la méthode scrollIntoView.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut
    bonjour,

    le scrolintoview n'est valable que pour le top et le botom pas sur le centrage d'un element horizontal

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    va falloir jouer sur le margin top par rapport à l'offset top de l'element selectionné

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    le scrolintoview n'est valable que pour le top et le botom pas sur le centrage d'un element horizontal
    certes mais tu peux faire comme.

    Petit détournement
    Code html : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    <style>
    div{
      height:100px;
      width:600px;
      overflow:hidden;
      border:1px solid #CCC;
    }
    div div {
      float:left;
      border:none;
    }
    #div_1{ background:#FEE;}
    #div_2{ background:#EFE;}
    #div_3{ background:#EEF;}
    </style>
    <script>
    function showElem( id) {
      var oDiv = document.getElementById(id);
      oDiv.scrollIntoView();
    }
    </script>
    </head>
    <body>
      <button onclick="showElem('div_1');">DIV_1</button>
      <button onclick="showElem('div_2');">DIV_2</button>
      <button onclick="showElem('div_3');">DIV_3</button>
     
      <div>
        <div id="div_1">Texte de la DIV_1</div>
        <div id="div_2">Texte de la DIV_2</div>
        <div id="div_3">Texte de la DIV_3</div>
      </div>
    </body>
    </html>

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    oui mais ...
    a priori il demande un centrage ...
    il me semble que scrollintoview ne s'occuppe pas de centrer ...

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    a priori il demande un centrage ...
    il me semble que scrollintoview ne s'occuppe pas de centrer ...
    c'est vrai, dans ce cas il faudra un GROS détournement

    Mais comme effectivement
    Citation Envoyé par jameson
    il y a 3 ou 4 categories visible à l'ecran
    je ne pense pas qu'il y ait d'autres méthodes que de recalculer la position left, en jouant sur le margin-left du conteneur ou autre...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut
    actuellement je n'ai pas trouvé de solution.

    en faite je voudrais faire une sorte de tabhost comme sur android mais en html css 3

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 226
    Points : 67
    Points
    67
    Par défaut
    en faite avec le margin-left cela fonctionne mais, cela me diminue ma zone de scroll ce que je ne veux pas.

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Pourrais tu nous mettre le code de ce que tu essaies de faire fonctionner que l'on se rende compte...?

Discussions similaires

  1. Gérer automatiquement la taille des onglets d'un menu horizontal
    Par alaninho dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 30/03/2015, 09h39
  2. Centrer le texte d'un menu horizontal CSS
    Par neaux dans le forum Mise en page CSS
    Réponses: 26
    Dernier message: 08/12/2012, 14h24
  3. Menu horizontal et élément complexe au milieu
    Par Neilos dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 08/05/2012, 19h44
  4. [CSS] Centrer menu horizontal
    Par Aspic dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 28/03/2010, 13h24
  5. centrer un menu horizontal
    Par philippef dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 27/08/2007, 12h34

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