Bonjour
voila un script qui doit me permettre de faire un menu dynamique (cf exemple : http://www.editeurjavascript.com/scripts/scripts_navigation_3_265.php)
Mais voila, mon problème est que je voudrai que les sous menus soit fermés à l'ouverture de la page... mais je ne parviens pas à le faire.
Au lieu de :
Menu 1
- Menu11
- Menu12
Menu 2
-Menu21
--Menu211
-Menu22
je voudrais juste (à'louverture de la page):
Menu 1
Menu 2
Merci pour votre aide !!!
<script type="text/javascript">
/*
* Montre / Cache un div
*/
function DivStatus( nom, numero )
{
var divID = nom + numero;
if ( document.getElementById && document.getElementById( divID ) ) // Pour les navigateurs récents
{
Pdiv = document.getElementById( divID );
PcH = true;
}
else if ( document.all && document.all[ divID ] ) // Pour les veilles versions
{
Pdiv = document.all[ divID ];
PcH = true;
}
else if ( document.layers && document.layers[ divID ] ) // Pour les très veilles versions
{
Pdiv = document.layers[ divID ];
PcH = true;
}
else
{
PcH = false;
}
if ( PcH )
{
Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
}
}
/*
* Cache tous les divs ayant le même préfixe
*/
function CacheTout( nom )
{
var NumDiv = 1;
if ( document.getElementById ) // Pour les navigateurs récents
{
while ( document.getElementById( nom + NumDiv) )
{
SetDiv = document.getElementById( nom + NumDiv );
if ( SetDiv && SetDiv.className != 'cachediv' )
{
DivStatus( nom, NumDiv );
}
NumDiv++;
}
}
else if ( document.all ) // Pour les veilles versions
{
while ( document.all[ nom + NumDiv ] )
{
SetDiv = document.all[ nom + NumDiv ];
if ( SetDiv && SetDiv.className != 'cachediv' )
{
DivStatus( nom, NumDiv );
}
NumDiv++;
}
}
else if ( document.layers ) // Pour les très veilles versions
{
while ( document.layers[ nom + NumDiv ] )
{
SetDiv = document.layers[ nom + NumDiv ];
if ( SetDiv && SetDiv.className != 'cachediv' )
{
DivStatus( nom, NumDiv );
}
NumDiv++;
}
}
}
/*
* Montre tous les divs ayant le même préfixe
*/
function MontreTout( nom )
{
var NumDiv = 1;
if ( document.getElementByIdA ) // Pour les navigateurs récents
{
while ( document.getElementById( nom + NumDiv) )
{
SetDiv = document.getElementById( nom + NumDiv );
if ( SetDiv && SetDiv.className != '' )
{
DivStatus( nom, NumDiv );
}
NumDiv++;
}
}
else if ( document.all ) // Pour les veilles versions
{
while ( document.all[ nom + NumDiv ] )
{
SetDiv = document.all[ nom + NumDiv ];
if ( SetDiv && SetDiv.className != '' )
{
DivStatus( nom, NumDiv );
}
NumDiv++;
}
}
else if ( document.layers ) // Pour les très veilles versions
{
while ( document.layers[ nom + NumDiv ] )
{
SetDiv = document.layers[ nom + NumDiv ];
if ( SetDiv && SetDiv.className != '' )
{
DivStatus( nom, NumDiv );
}
NumDiv++;
}
}
}
/*
* Inverse les divs: Cache les divs visible et montre le divs cachés :)
*/
function InverseTout( nom )
{
var NumDiv = 1;
if ( document.getElementById ) // Pour les navigateurs récents
{
while ( document.getElementById( nom + NumDiv ) )
{
SetDiv = document.getElementById( nom + NumDiv );
DivStatus( nom, NumDiv );
NumDiv++;
}
}
else if ( document.all ) // Pour les veilles versions
{
while ( document.all[ nom + NumDiv ] )
{
SetDiv = document.all[ nom + NumDiv ];
DivStatus( nom, NumDiv );
NumDiv++;
}
}
else if ( document.layers ) // Pour les très veilles versions
{
while ( document.layers[ nom + NumDiv ] )
{
SetDiv = document.layers[ nom + NumDiv ];
DivStatus( nom, NumDiv );
NumDiv++;
}
}
}
</script>
<style type="text/css">
.cachediv {
visibility: hidden;
overflow: hidden;
height: 1px;
margin-top: -1px;
position: absolute;
}
<!--
.unnamed1 {
background-color: #000066;
cursor: pointer;
text-decoration: underline;
text-align: center;
}
-->
</style>
</head>
<body onload="MM_preloadImages('images/But_accueil_over.gif','images/But_enbref_over.gif','images/But_must_over.gif','images/But_fonds_over.gif','images/But_souscrire_over.gif','images/But_publications_over.gif','images/But_contact_over.gif')">
<div name="menu1" id="menu1">
<div class="unnamed1" onClick="javascript:DivStatus( 'menu', '11' )"><font color="#0066FF" size="2" face="Trebuchet MS"><img src="images/But_accueil_out.gif" name="ButAccueil" width="175" height="40" border="0"></font></div>
</div>
<div name="menu11" id="menu11">
<div class="unnamed1" style="border: 1px solid black; background-color: whitesmoke; margin-bottom: 2px;"><a href="accueil.php"><em>Accueil</em></a></div>
</div>
<div name="menu2" id="menu2">
<div class="unnamed1" onClick="javascript:DivStatus( 'menu', '21' )"><font color="#0066FF" size="2" face="Trebuchet MS"><img src="images/But_enbref_out.gif" name="ButAccueil" width="175" height="40" border="0"></font></div>
</div>
<div name="menu21" id="menu21">
<div class="unnamed1" style="border: 1px solid black; background-color: whitesmoke; margin-bottom: 2px;"><a href="societe.php"><em>La société</em></a></div>
<div class="unnamed1" style="border: 1px solid black; background-color: whitesmoke; margin-bottom: 2px;"><a href="mission.php"><em>Notre mission</em></a></div>
<div class="unnamed1" style="border: 1px solid black; background-color: whitesmoke; margin-bottom: 2px;"><a href="equipe.php"><em>L'équipe</em></a></div>
<div class="unnamed1" style="border: 1px solid black; background-color: whitesmoke; margin-bottom: 2px;"><a href="Partenaires.php"><em>Les partenaires</em></a></div>
</div>
</body>
</html>
Quand tu definit tes sous-menus, ajouter a l'Id la class cachediv :
<div name="menu21" id="menu21" class="cachediv">
Au chargement, la classe par defaut va cacher tes sous-menus.
Bonjour, je relance ce post car j'ai un problème.
J'utilise ce script pour un menu de mon site cela fonctionne nickel sous firefox mais sous ie lorsque je déroule le menu, il 'ny a rien qui s'affiche...
oui d'ailleurs moi aussi j'ai un menu dynamique horizontal avec des sous-menus,
cela marche nickel sous firefox, chrome etc mais pas sous IE...
on ne voit que les titres des menus mais les sous titres n'apparaissent pas...
Trouvez des réponses à vos questions sur la création de sites web, le référencement et les meilleures pratiques pour gérer un site. Échangez avec d'autres webmasters passionnés pour améliorer vos compétences en ligne et optimiser vos projets de site web.