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 le contenu d'un menu a onglet


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de poupouille
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Par défaut changer le contenu d'un menu a onglet
    Bonjour

    j'ai un menu a onglets en 2 parties. Une pour les onglets (header) et l'autre puor les contenus:

    code html:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <div id="menu">
         <div id="header">
                <div id="onglet1">
                  <a href="#" onclick="javascript:maFonction('onglet1')">onglet1</a>
               </div>
                <div id="onglet2">
                  <a href="#" onclick="javascript:maFonction('onglet2')">onglet2</a>
               </div>
               <div id="onglet3">
                  <a href="#" onclick="javascript:maFonction('onglet3')">onglet3</a>
               </div>
               <div class="clearer">
          </div>
          <div id="containermenu">
               <div class="div1">
    	        <ul class="navmenu">
                          <li><a href="#">lien1</a></li>
    		      <li><a href="#">lien2</a></li>
    	              <li><a href="#">lien3</a></li>
                          <li><a href="#">lien4</a></li>
                     </ul> 
               </div>                                    
               <div class="linie2"></div>
               <div class="div1">
    	        <ul class="navmenu">
                          <li><a href="#">lien5</a></li>
    		      <li><a href="#">lien6</a></li>
    	              <li><a href="#">lien7</a></li>
                          <li><a href="#">lein8</a></li>
                     </ul> 
               </div>                                    
               <div class="linie2"></div>
               <div class="div1">
    	        <ul class="navmenu">
                          <li><a href="#">lien9</a></li>
    		      <li><a href="#">lien10</a></li>
    	              <li><a href="#">lien11</a></li>
                          <li><a href="#">lien12</a></li>
                     </ul> 
               </div>                                    
               <div class="linie2"></div>
               <div id="divbtn">
                    <div id="button1">
                         <a href="#" id="button1text">voir tout</a>
                     </div>    
                     <div class="clearer"></div>                                    
                </div>                                  
    	</div>
    </div>
    code CSS:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    #menu{
       width:590px;
       height:117px;
    }
     
        #header{
             float: left;
             width:590px;
             height: 26px;
             font-family:arial;
    	 font-size:12px;
    	 color:#666666;
    	 font-weight:bold;
        }
     
    		#onglet1{
    			display:inline;
    			float: left;
    			width:190px;
    			height: 21px;
    			padding:5px 5px 0px 0px;
    			text-align:center;
                            cursor:pointer;
    			background:url(./image/onglet_active.gif);
    		}
     
    		#onglet2{
    			display:inline;
    			float: left;
    			width:190px;
    			height: 21px;
    			padding:5px 5px 0px 5px;
    			text-align:center;
                            cursor:pointer;
    			background-image:url(./image/onglet2_inactive.gif);
    		}
     
    		#onglet3{
    			display:inline;
    			float: left;
    			width:190px;
    			height: 21px;
    			padding:5px 0px 0px 5px;
    			text-align:center;
                            cursor:pointer;				                                                    
                            background-image:url(./image/onglet3_inactive.gif);
    	       }
     
                            #onglet1 a, #onglet2 a,#onglet3 a{
                                    display: block;
    			        font-family:arial;
    				font-size:12px;
    				color:#666666;
    				font-weight:bold;
    				text-decoration:none;
                                    height: 21px;
    			}
     
    				#containermenu{
    					float: left;
    					width:588px;
    					height: 89px;
    					border-left: #CCCCCC solid 1px;
                                            border-right: #CCCCCC solid 1px;
                                            border-bottom: #CCCCCC solid 1px;
                                            background-color:#F9FCE7;  
    				}
     
                        #divbtn{
                            display:inline;
                            width:115px;
                            height:90px;
                        }
     
                            #button1{
                                float:right;
                                width:67px;
                                height:25px;
                                padding-right:26px;
                                margin-top:39px; 
                                text-align:center;
                                background:transparent url(./image/bouton1.jpg) no-repeat;                            
                            }
     
                                #button1text{
                                    float:right;
                                    width:67px;
                                    height:25px;
                                    margin-top:5px;
                                    font-family:arial;
                                    font-size:11px;
                                    text-align:center;
                                    color:#494949;
                                    text-decoration:none;
                                }
     
                        .navmenu{
                            float:left;
                            width:128px;
                            height:80px;
                            list-style-type:square;
                            color:#A8B909;
                            margin:0;
                            padding-left:25px;
                            padding-top:10px;
                        }
     
                            .navmenu li{
                                font-size:10px;
                                line-height:120%;
                            }
     
                            .navmenu a{
                                color:#666666;
                                font-family:arial;
                                font-size:12px;
                                text-decoration:none;
                            }
     
                            .navmenu a:hover{
                                text-decoration: underline;
                            }
     
    			.linie2{
                                display:inline;
                                float:left;
                                width:1px;
                                height:52px;
                                margin-top:16px;
                                margin-bottom:22px;
                                background-color:#CCCCCC;                                
                          }

    Par cette fonction javascript:maFonction('onglet1') je parviens a modifier lapparence de l'onglet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function maFonction(name)
    {
          var tabs = new Array("onglet1", "onglet2", "onglet3");
          for(i=0; i<3; i++){
               url = "url(./image/"+tabs[i]+"_";                  
               if(name != tabs[i]){
                    url += "in";                     
                }
                url += "active.gif)";  
                document.getElementById(tabs[i]).style.backgroundImage = url;
          }
    }

    je n'ai aucun probleme pour modifier la couleur du background de caque contenu, mais je voudrais faire plus, par exemple quand on clique sur ongletm qu'il y ait une image a la place des liens.
    Comment puis-je procéder???

    merci
    bonne journée
    Sophie

  2. #2
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut
    Bonjour,

    tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("onglet1").innerHTML ="<img src='...'>"

  3. #3
    Membre confirmé Avatar de poupouille
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Par défaut
    si je fais ta méthode pour l'onglet2 par exemple,et que je repasse sur l'onglet1, (la ou se trouve tous les liens definis dans le html et les css), l'onglet1 posséde le meme contenu que le 2.
    Dois je vraiment reecrire tous mes liens dans de l'onglet 1 dans le javascript?
    merci

  4. #4
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut
    Citation Envoyé par poupouille Voir le message
    si je fais ta méthode pour l'onglet2 par exemple,et que je repasse sur l'onglet1, (la ou se trouve tous les liens definis dans le html et les css), l'onglet1 posséde le meme contenu que le 2.
    Dois je vraiment reecrire tous mes liens dans de l'onglet 1 dans le javascript?
    merci
    effectivement, tu dois avoir un if dans ta fonction avec un traitement différent en fonction de l'onglet sélectionné.

  5. #5
    Membre confirmé Avatar de poupouille
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 72
    Par défaut
    Ne le prend pas mal, mais j'ai préféré faire d'une autre façon. Cela m'évite d'avoir du html mélangé à du javascript.
    J'ai donc définit dans mon html le contenu de mes 3 onglets, en leur donnant un id différent. J'ai modifier la propriété display de mon css en la mettant à none si je ne veux pas qu'un des contenu apparaisse.
    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
     
    function maFonction(name){
        var tabs = new Array("onglet1", "onglet2", "onglet3");
        for(i=0; i<3; i++){
              url = "url(./image/menu_"+tabs[i]+"_"; 
              if(name != tabs[i]){
                    url += "inactive.gif)";                        
                    value = 'none';                        
              }
              else{
                   url += "active.gif)"; 
                   value ='block';
              }
              document.getElementById(tabs[i]).style.backgroundImage = url;
              document.getElementById("container_"+tabs[i]).style.display = value;
         }            
    }

  6. #6
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut
    Citation Envoyé par poupouille Voir le message
    Ne le prend pas mal, mais j'ai préféré faire d'une autre façon.
    Ne t'inquiète pas pour mon ego ^^
    Effectivement c'est une meilleure solution

    pense à cliquer sur Résolu ^^

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

Discussions similaires

  1. Changer contenu div avec menu deroulant
    Par matt059 dans le forum Général Conception Web
    Réponses: 11
    Dernier message: 11/03/2011, 20h19
  2. Changer la couleur sur clique d'un onglet dans un menu
    Par nadiaflamingenierie dans le forum Général JavaScript
    Réponses: 44
    Dernier message: 18/04/2008, 15h56
  3. menu a onglet: changer contenu d'une page php
    Par poupouille dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/04/2008, 09h32
  4. changer le contenu d'un onglet
    Par ouedmouss dans le forum JSF
    Réponses: 3
    Dernier message: 28/08/2006, 20h27
  5. [Swing] Changer le contenu d'un Container via un menu
    Par TheSeb dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 07/12/2004, 23h07

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