Menu vertical deroulant

Signaler
Messages postés
61
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
27 avril 2009
-
Messages postés
61
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
27 avril 2009
-
bonjour je viens de voir sur ce site comment faire un menu vertical deroulant:
http://css.alsacreations.com/Construction-de-menus-en-CSS/Un-menu-deroulant-en-CSS-et-XHTML-vertical-et-horizontal

mais je voudrais que lorsque l'on reclic sur un menu deja ouvert qu'il se referme.comment faire??

merci

13 réponses

Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Bonjour

Je vais prendre le premier exemple qu'ils donnent : Menu déroulant vertical

window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
 for (var i = 1; i<=10; i++) {
  if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
 }
if (d) {
if (d.style.display=='block') d.style.display==none;
else d.style.display=='block';
}
}
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Desolé, une erreur dans la partie en bleu :
if (d) {
if (d.style.display=='block') d.style.display=none;
else d.style.display='block';
}
Messages postés
61
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
27 avril 2009

Je suis désolé mais ce que tu as ecris ne marche pas....Es tu sur de ce que tu as mis??
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

En fait j'ai encore fais une erreur

if (d) {
if (d.style.display=='block') d.style.display='none';
else d.style.display='block';
}

Il manquait les ' autour du none...
Messages postés
61
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
27 avril 2009

e.... ca ne marche toujours pas.....T'es sur de ton code?
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Ya pas une erreur javascript ou un truc qui pourrait aider plus que "ca marche pas"?
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Erreur d'algo, autant pour moi

function montre(id) {
var aff;
var d = document.getElementById(id);
if (d) if (d.style.display=='block') aff = 'none';
else aff = 'block';
for (var i = 1; i<=10; i++)
 if (document.getElementById('smenu'+i))
  document.getElementById('smenu'+i).style.display='none';
if (d) d.style.display = aff;
}
Messages postés
61
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
27 avril 2009

Ouai!!! cool ca marche.Mais quand j'ouvre un menu, et puis ensuite un autre, le premier se referme, peut on corriger cela pour que chaque menu ne se referme qu'au clic??
merci d'avance.
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Essaye comme ça :

<script type="text/javascript">
<!--
for (var i = 1; i<=10; i++)
 if (document.getElementById('smenu'+i))
  document.getElementById('smenu'+i).style.display='none';

function montre(id) {
var aff;
var d = document.getElementById(id);
if (d) if (d.style.display=='block') aff = 'none';
else aff = 'block';
if (d) d.style.display = aff;
}
//-->
</script>
Messages postés
61
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
27 avril 2009

ok merci, mais ca marche pas au premier clic mais au deuxieme clic qd on arrive pour la premiere fois sur la page.il faut 2 clics la premiere fois pour pouvoir fermer une fenetre.lol


merci
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

J'ai pas compris...
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Si en fait j'ai compris

>

<script type="text/javascript">
<!--


function montre(id) {
var aff;
var d = document.getElementById(id);
if (d) if (d.style.display=='block') aff = 'none';
else aff = 'block';
if (d) d.style.display = aff;
}
//-->
</script>


<style type="text/css">

et
Messages postés
61
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
27 avril 2009

trop bien merci!!!!