neolin85
Messages postés8Date d'inscriptionmercredi 24 mai 2006StatutMembreDernière intervention30 mars 2007
-
29 mars 2007 à 16:00
neolin85
Messages postés8Date d'inscriptionmercredi 24 mai 2006StatutMembreDernière intervention30 mars 2007
-
30 mars 2007 à 21:41
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="\";
for(i=1;i<=n;i++)
content+='----
Sous-Menu'+indice+'-'+i+', ';
content+='<TABLE>';
document.getElementById(\"pendule2\").innerHTML=content;
}
</SCRIPT>
</HEAD>
<SCRIPT>
var n=6;
var gauche=10,haut=37;
var tmp=\"<TABLE cellspacing=1 width=600px>----
\";
for(i=1;i<=n;i++){
tmp+='choix'+i+', ';
gauche+=100;
}
tmp+="
";
document.getElementById("pendule1").innerHTML=tmp;
</SCRIPT>
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 30 mars 2007 à 09:54
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)
neolin85
Messages postés8Date d'inscriptionmercredi 24 mai 2006StatutMembreDernière intervention30 mars 2007 29 mars 2007 à 21:32
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