Bonsoir,
Je voudrais faire un menu qui une fois qu'une option est sélectionnée une nouvelle page s'ouvre et que le menu reste selectionné à la bonne option. J'ai donc créer un menu dans un fichier menu.js. puis avec une fonction js indépendante je 're-colorie' la cellule correspondant à l'option sélectionnée. Cela fonctionne presque à 100% car pour que l'option reste sélectionné il faut faire un F5..
Voici mon code :
menu.js
[SCRIPT]
color1='#000000';
bgmenu='#B7A599'; // cellule du menu sélectionné
color3='#FFFFFF';
bgsousmenu='#E0D4C6';// cellule du sous menu sélectionné
document.write('<style type="text/css">');
document.write('.popper { POSITION: absolute; VISIBILITY: hidden; z-index:15; left: 99px;')
document.write('#topgauche { position:absolute; z-index:10; }')
document.write('</style>')
document.write('<div style="position:relative;height:25"><DIV class=popper id=topdeck></DIV>');
/* Définition du sous menu */
zlien = new Array;
zlien[0] = new Array;
zlien[0][0] = '<td class=\"StyleSMenu\" height=\"19\" width=\"100\" onclick=\"menuClickPhp(\'realisation\')\" onMouseOver=\"this.style.color=\''+color1+'\';this.style.background=\''+bgsousmenu+'\'\" onMouseOut=\"this.style.color=\''+color1+'\';this.style.background=\''+bgmenu+'\'\">Professionnelles</td>';
zlien[0][1] = '<td class=\"StyleSMenu\" height=\"19\" width=\"100\" onclick=\"menuClickPhp(\'realisation\')\" onMouseOver=\"this.style.color=\''+color1+'\';this.style.background=\''+bgsousmenu+'\'\" onMouseOut=\"this.style.color=\''+color1+'\';this.style.background=\''+bgmenu+'\'\">Privées</td>';
zlien[0][2] = '<td class=\"StyleSMenu\" height=\"19\" width=\"100\" onclick=\"menuClickPhp(\'realisation\')\" onMouseOver=\"this.style.color=\''+color1+'\';this.style.background=\''+bgsousmenu+'\'\" onMouseOut=\"this.style.color=\''+color1+'\';this.style.background=\''+bgmenu+'\'\">Mobilier</td>';
if(document.getElementById)
{
skn = document.getElementById("topdeck").style;
skn.left = 99;
}
/* Affiche un sous menu */
function pop(msg,pos)
{
skn.visibility = "hidden";
a=true
skn.top = pos;
var content ="<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#000000 HEIGHT=19 WIDTH=300><TR height=19><TD HEIGHT=19><TABLE WIDTH=300 HEIGHT=19 BORDER=0 CELLPADDING=0 CELLSPACING=4><tr HEIGHT=19>";
pass = 0
while (pass < msg.length)
{
content += msg[pass];
pass++;
}
content += "</tr></TABLE></TD></TR></TABLE>";
document.getElementById("topdeck").innerHTML = content;
skn.visibility = "visible";
}
/* permet de selectionner une page lorsque on clic sur un menu*/
function menuClickPhp(mnu)
{
document.location = "./"+mnu+".php";
}
function kill()
{
if(document.getElementById)
skn.visibility = "hidden";
}
/* modifier la couleur de la cellule, cache le sous menu réalisation,
et change la couleur de la cellule qui avait un sous menu sélectionné */
function menu(msg,obj)
{
obj.style.background = color1;
msg.style.background = bgmenu;
skn.visibility = "hidden";
}
/* modifier la couleur de la cellule qui a un sous menu sélectionné */
function menu1(obj)
{
obj.style.background = bgmenu;
}
document.onclick = kill;
if(document.getElementById)
{
document.write('<DIV ID=topgauche><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#000000 WIDTH=100 HEIGHT=130><TR><TD><TABLE CELLPADING=0 CELLSPACING=1 BORDER=0 WIDTH=100 HEIGHT=130>')
document.write('<tr height=18><TD WIDTH=100 </TD></tr>')
document.write('<tr height=19><TD WIDTH=100 ALIGN=left id="menu_esprit" class="Style1" onclick="menuClickPhp(\'esprit\')" onMouseOver=menu(this,document.getElementById(\"realisation\")) onMouseOut="this.style.color=\''+color3+'\';this.style.background=\''+color1+'\'" >L\'ESPRIT</TD></tr>')
document.write('<tr height=19><TD WIDTH=100 ALIGN=left id="menu_services" class="Style1" onclick="menuClickPhp(\'services\')" onMouseOver=menu(this,document.getElementById(\"realisation\")) onMouseOut="this.style.color=\''+color3+'\';this.style.background=\''+color1+'\'" >SERVICES</TD></tr>')
document.write('<tr height=19><TD WIDTH=100 HEIGHT=19 ALIGN=left id="realisation"class="Style1" onMouseOver="this.style.color=\''+color3+'\';this.style.background=\''+bgmenu+'\';pop(zlien[0],56)" onMouseOut=menu1(this) >REALISATIONS</TD></tr>')
document.write('<tr height=19><TD WIDTH=100 ALIGN=left id="menu_actualite" class="Style1" onclick="menuClickPhp(\'actualites\')" onMouseOver=menu(this,document.getElementById(\"realisation\")) onMouseOut="this.style.color=\''+color3+'\';this.style.background=\''+color1+'\'">ACTUALITES</TD></tr>')
document.write('<tr height=19><TD WIDTH=100 ALIGN=left id="menu_contact" class="Style1" onclick="menuClickPhp(\'contact\')" onMouseOver=menu(this,document.getElementById(\"realisation\")) onMouseOut="this.style.color=\''+color3+'\';this.style.background=\''+color1+'\'">CONTACT</TD></tr>')
document.write('<tr height=17><TD WIDTH=100 </TD></tr>')
document.write('</TABLE></TD></TR></TABLE></DIV>')
}
document.write('</div>');
[/SCRIPT]
fonction.js :
[SCRIPT]
function hightlight(idmenu)
{
if (idmenu=='menu_actualite')
{
document.getElementById('menu_actualite').style.background = "#B7A599";
}
if (idmenu=='menu_services')
{
document.getElementById('menu_services').style.background = "#B7A599";
}
if (idmenu=='menu_esprit')
{
document.getElementById('menu_esprit').style.background = "#B7A599";
}
if (idmenu=='menu_contact')
{
document.getElementById('menu_contact').style.background = "#B7A599F";
}
}
[/SCRIPT]
Dans mes pages php:
[SCRIPT]
<td>
<SCRIPT LANGUAGE="JavaScript" SRC="menu.js"></SCRIPT>
<script type="text/javascript">hightlight('menu_esprit');</script>
</td>
[/SCRIPT]
Merci de votre aide