begin process at 2010 02 09 18:42:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Evènements

 > 

probleme affichage/masquer menu vertical


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme affichage/masquer menu vertical

jeudi 29 mars 2007 à 16:00:46 | probleme affichage/masquer menu vertical

neolin85

Bonjour à tous, j'ai developpé un petit code qui permet de faire un menu horizontal avec des menus verticaux pour chaque clique sur le menu.
J'ai un petit souci que j'arrive pas a resoudre. En fait, je veut que lorsque je clique une deuxieme fois sur le menu vertical(sous Menu) affiché ce dernier soit caché.

Merci d'avance.

Code :
<HTML>
<HEAD>
<TITLE> Menu horizontal </TITLE>
<SCRIPT language='JavaScript'>

function selectionner(obj){
    obj.style.backgroundColor="red";
}

function deselectionner(obj){
    obj.style.backgroundColor="orange";
}

function afficherMenu(obj,parGauche,parHaut,indice){
    var n=3;    
    content="<TABLE cellspacing=1 width=100px style='position:absolute;left:"+parGauche+";top:"+parHaut+"'>";
    for(i=1;i<=n;i++)    
        content+='<TR><TD style="height:5px; text-align:center;background-color:orange;" >Sous-Menu'+indice+'-'+i+'</TD></TR>';
    content+='<TABLE>';
    document.getElementById("pendule2").innerHTML=content;    
}
</SCRIPT>
</HEAD>
<BODY>
<DIV id="pendule1"></DIV>
<SCRIPT>
var n=6;
var gauche=10,haut=37;
var tmp="<TABLE cellspacing=1 width=600px><TR>";
    for(i=1;i<=n;i++){
        tmp+='<TD style="height:5px; text-align:center;background-color:orange;" onmouseover="selectionner(this)" onmouseout="deselectionner(this)" onclick="afficherMenu(this,'+gauche+','+haut+','+i+')">choix'+i+'</TD>';
        gauche+=100;
    }
tmp+="</TR></TABLE>";
document.getElementById("pendule1").innerHTML=tmp;
</SCRIPT>
<DIV id="pendule2"></DIV>
</BODY>
</HTML>
jeudi 29 mars 2007 à 18:51:24 | Re : probleme affichage/masquer menu vertical

stfou

Membre Club
Dans ce cas, objec.style.display="none"; est ton amis ;) et l'inverse c'est "block".
Bonne chance


mnu.bmpstefou.bmp
STFOU
jeudi 29 mars 2007 à 21:14:58 | Re : probleme affichage/masquer menu vertical

neolin85

Il faut le mettre ou obj.style.display="none" ?

jeudi 29 mars 2007 à 21:25:17 | Re : probleme affichage/masquer menu vertical

stfou

Membre Club
Bonsoir, par exemple : document.getElementById("pendule2").style.display="none"; si tu veux faire disparaître cet objet.


mnu.bmpstefou.bmp
Stfou
jeudi 29 mars 2007 à 21:32:51 | Re : probleme affichage/masquer menu vertical

neolin85

Bon soir,
oué mais le probleme si je met : document.getElementById("pendule2").style.display="none";  à la fin de ma fonction afficherMenu() le menu va disparaitre sans qu'on voit la transition
vendredi 30 mars 2007 à 09:54:00 | Re : probleme affichage/masquer menu vertical

Zobibol

Réponse acceptée !
Bonjour, je te propose une autre solution

remplace ta méthode d'ouverture afficherMenu(...) par celle ci

function afficherMenu(obj,parGauche,parHaut,indice){
        // si les menus ouvert précedement est différent du menu actuel
        if ( document.body.openedMenu != obj){
            // vide le contenu de "pendule2"
            document.getElementById("pendule2").innerHTML ="";
            // remets le contrôle à vide.
          document.body.openedMenu= null;
        }
        // si aucun menu ouvert alors on va ouvrir le menu
        if ( !document.body.openedMenu ){
        var n=3;   
        content="<TABLE cellspacing=1 width=100px style='position:absolute;left:"+parGauche+";top:"+parHaut+"'>";
        for(i=1;i<=n;i++)   
            content+='<TR><TD style="height:5px; text-align:center;background-color:orange;" >Sous-Menu'+indice+'-'+i+'</TD></TR>';
        content+='<TABLE>';
        document.getElementById("pendule2").innerHTML=content;   
        // stock dans le body.openedMenu l'objet ayant demandé le menu
        document.body.openedMenu = obj;
      }
      else{
          document.getElementById("pendule2").innerHTML ="";
          // supprime le menu ouvert dans le body.openedMenu
          document.body.openedMenu= null;
      }
}

Il y a quelques commentaires mais si tu as besoins d'aide, pas de problème.
Le principe est de stocké dans le body ( pour éviter une variable globale ... ) l'obj ayant demandé le menu, et le tour est joué ;o)


[o-_-o]
vendredi 30 mars 2007 à 21:41:24 | Re : probleme affichage/masquer menu vertical

neolin85

merci bien ça marche nikel.
a++



Cette discussion est classée dans : menu, var, obj, tmp, content


Répondre à ce message

Sujets en rapport avec ce message

menu en cascade [ par oceane751 ] bonjour à tous!! j'ai du code me permettant de creer un menu horizontal en cascade, mais j'ai un peu de mal en effet, pour certain element du menu probleme avec document.writ() [ par neolin85 ] Bonsoir à tous,Je souhaite construire un menu horizontal sauf que j'ai un soucis avec la méthode write de la classe document.En fait, chaque fois que PDA [ par cjcj ] La fonction ci dessous me permet de changer la couleur de la colonne cliquée ( La première devient verte, la deuxième devient rouge...) et les colonne .selectionStart dans un Iframe [ par bultez ] Bonjour à toutes et à tous,je ne parviens pas à utiliser .selection??? dans un iframe ( avec FF/M-Meleon... donc )< menu xp = comment ajouter un lien? et agrandir le menu? [ par scinzia ] Bonjour, je me sers du menu xp qui fonctionne très bien sous Mozilla seul problème la page que je construis est destinée à des utilisteurs utilisant I Objet.style.top me retourne 0 [ par tibob51 ] Bonjour,Je suis débutant en java (je galère pas mal même), et sur ce morceaux de code je n'arrive pas a comprendre pourquoi ma ariable posi est égale Ouvrir des pages htm dans un iFrame [ par pat84 ] Bonjour à tous,J'ai récupéré un menu sur le web que j'ai modifié pour mon usage...Un menu est situé dans la page index.htm et dans cette page index.ht OffsetTop - comportement hératique sur Firefox [ par lmeylan ] Bonjour, Mon objectif: pouvoir positionner des images en superposition d'autres ! je me creuse la tête depuis pas mal de temps pour comprendre pourqu menu horizontal avec sous menu déroulant vers le haut [ par belleva ] Bonsoir,J'ai un site qui possède un premier menu déroulant vers le bas dans l'entête de mon site.J'aurais aimé pouvoir mettre un second menu horizonta génération d'un menu [ par neg03 ] Bonjour, je souhaite utiliser une fonction javascript pour créer un menu :function menu(div){  var b = document.createElement('b'); div.appendChild(b)


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales