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 :

Changer la class d'un menu


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Par défaut Changer la class d'un menu
    Bien le bonjour,

    Bon, j'ai du faire 15 forums, avant de venir vous voir et d'être sur que je trouverais la solution ici, héhé. ^^

    Voilà, ça ne doit pas être la mer à boire mais je n'arrive pas à changer la class d'un menu.

    Voici le HTML :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ul id="nav_ad">
      <li class="cur"><a href="accueil.php" class="lien_Menu"><strong>Accueil</strong></a></li>
      <li><a href="dada.php" class="lien_Menu">Lien A</a></li>
      <li><a href="dodo.php" class="lien_Menu">Lien B</a></li>
      <li><a href="dudu.php" class="lien_Menu">Lien C</a></li>
      <li><a href="dede.php" class="lien_Menu">Lien D</a></li>
    </ul>

    Donc le menu est quasiment sous la même forme que celui de développer.com, et lorsque l'on clique sur un des onglets sur menu, le css change selon l'onglet que l'on à cliquer.

    Voilà mon javascript :

    Code javascript : 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
    function rollover()
    {
      if(!document.getElementById || !document.createTextNode){return;}
      var n=document.getElementById('nav_ad');
      if(!n){return;}
      var lis=n.getElementsByTagName('li');
      for (var i=0;i<lis.length;i++)
      {
        lis[i].onmouseover=function()
        {
          this.className=this.className?'cur':'over';
        }
        lis[i].onmouseout=function()
        {
           this.className=this.className=='cur'?'cur':'';
        }
      }
    }
    window.onload=rollover;

    La class ne bouge pas, elle veut rester sur Accueil. Pas moyen de la faire bouger !!! erf erf erf

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Là tu utilises onmouseover, c'est à dire le passage de la souris par dessus un élément sans cliquer. Ce qui peut être fait simplement en CSS

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #nav_ad li {
        background:red;
    }
     
    #nav_ad li:hover {
        background:green;
    }

    Si tu veux changer la classe du menu après un clic, et donc après un changement de page, je suppose que le plus simple serait de mettre un HTML différent pour le menu dans chaque page.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Par défaut
    Merci pour la réponse, mais oui il y a changement de page donc il faut que les "li" du menu se mettent à jour.

    Et donc il faudrait mettre un style différent pour chaque page, pourquoi pas !

    Donc on récupére l'URL, et suite à l'identification de l'URL on marque la "li" avec un style particulier ?

    EDIT:

    Voici mon CSS de départ :
    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
    #nav_ad li.cur,
    #nav_ad li.over,
    #nav_ad li:hover
    {
      background:url("../images/menu vertical/tabblue.gif") #3375b2 top left no-repeat;
      border-bottom:1px solid #036;
    }
     
    #nav_ad li strong,
    ul#nav_ad li.cur a,
    ul#nav_ad li.over a,
    ul#nav_ad li:hover a
    {
      display:block;
      color:#fff;
      padding-left: 0px;
      padding-right: 2px;
      padding-top: 0px;
      text-decoration:none;
      background:url("../images/menu vertical/tabblue.gif") transparent top right no-repeat;
    }

    Donc il y a bien du CSS, mais je veux que lorsque l'on clique sur un onglet, la class "cur" se mette automatiquement sur l'onglet cliquer

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Par défaut
    Du JAVASCRIPT s'il vous plait

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Pourquoi vouloir à tout prix du Javascript quand ce n'est pas approprié ?

    Sur dada.php, tu mets
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ul id="nav_ad">
      <li><a href="accueil.php" class="lien_Menu"><strong>Accueil</strong></a></li>
      <li><a href="dada.php" class="lien_Menu cur">Lien A</a></li>
      <li><a href="dodo.php" class="lien_Menu">Lien B</a></li>
      <li><a href="dudu.php" class="lien_Menu">Lien C</a></li>
      <li><a href="dede.php" class="lien_Menu">Lien D</a></li>
    </ul>

    et sur dodo.php, tu mets
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ul id="nav_ad">
      <li><a href="accueil.php" class="lien_Menu"><strong>Accueil</strong></a></li>
      <li><a href="dada.php" class="lien_Menu">Lien A</a></li>
      <li><a href="dodo.php" class="lien_Menu cur">Lien B</a></li>
      <li><a href="dudu.php" class="lien_Menu">Lien C</a></li>
      <li><a href="dede.php" class="lien_Menu">Lien D</a></li>
    </ul>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Par défaut
    Le menu est hors page ^^

    Il est juste appelé donc pas possible ton truc


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

Discussions similaires

  1. [JavaScript] Changer la class CSS via l'id
    Par Romalafrite dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 25/11/2005, 15h30
  2. Changer un caption dans un menu
    Par firejocker dans le forum MFC
    Réponses: 14
    Dernier message: 23/11/2005, 11h54
  3. Réponses: 2
    Dernier message: 24/10/2005, 10h26
  4. Réponses: 2
    Dernier message: 09/08/2005, 08h51
  5. [VB.NET] Changer de classe selon condition
    Par daner06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/10/2004, 10h04

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