Menu avec affichage du sous-menu au survol

Signaler
Messages postés
40
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
15 mars 2005
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonjour à tous
Je suis nouvelle sur ce forum de Javascript, et je débute dans ce langage, dans ne m'en veuillez pas si je pose des questions trop simples...

Mon menu :
4 boutons placés horizontalement. Lorsque je passe la souris sur l'un d'eux, un sous menu apparait (à l'aide d'un layer). Tout marche (c'est déjà un exploit) mais je n'arrive pas à faire disparaitre le sous-menu lorsque ma souris se balade ailleurs que dessus. Il disparait lorsque je clique sur l'un des sous-menus ou en recliquant sur le menu simple.

J'ai l'impression que ce qui coince, c'est de la syntaxe. Pouvez -vous m'aider à trouver l'erreur ?

Le code (feuille .js externe) :

bgcolor='#113D9F';
bgcolor2='#758DC3';
document.write('<style type="text/css">');
document.write('.popper { POSITION: absolute; VISIBILITY: hidden; z-index:3; }')
document.write('#topgauche { position:absolute; z-index:10; top: 0px; left: 0px; }')
document.write('A:hover.ejsmenu {color:#ffffff; text-decoration:none;}')
document.write('A.ejsmenu {color:#ffffff; text-decoration:none;}')
document.write('</style>')
document.write('

');

/*
LIENS
*/
zlien = new Array;
zlien[0] = new Array;
zlien[0][0] = '[origine.html Origine et création]';
zlien[0][1] = '[chiffres.html Chiffres et dates]';
zlien[0][2] = '[activites.html Les activités]';
zlien[0][3] = '[atouts.html Sept atoûts]';
var nava = (document.layers);
var dom = (document.getElementById);
var iex = (document.all);
if (nava) { skn = document.topdeck }
else if (dom) { skn = document.getElementById("topdeck").style }
else if (iex) { skn = topdeck.style }
skn.top = 24;


function pop(msg,pos)
{
skn.visibility = "hidden";
a=true
skn.left = pos;
var content ="<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1 >";
pass = 0
while (pass < msg.length)
{
content += "----, \\"skn.visibility='hidden'\\" HEIGHT=20>&nbsp;&nbsp;\"+msg[pass]+\"</TD>\";
pass++;
}
content += "
</TD></TR></TABLE>";
if (nava)
{
skn.document.write(content);
skn.document.close();
skn.visibility = "visible";
}
else if (dom)
{
document.getElementById("topdeck").innerHTML = content;
skn.visibility = "visible";
}
else if (iex)
{
document.all("topdeck").innerHTML = content;
skn.visibility = "visible";
}
}
function kill()
{
skn.visibility = "hidden";
}
document.onclick = kill;
document.write('
<TABLE CELLPADING=0 CELLSPACING=1 BORDER=0 WIDTH=100% HEIGHT=25>----
')
document.write(', L\'agence</TD>')
document.write('
</TD></TR></TABLE>

')

Lotte

3 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
disons simplement que l'on ne comprends pas grand chose dans ton code... Aparement t'as fait que deux fonctions, pop et kill, et elles sont en plein milieu du code....

Donc, je ne peux que te donner l'évenement qui s'active lorsque tu enlèves ta souris d'un objet : onmouseout






In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happyhttp://coucou747.hopto.org
Messages postés
40
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
15 mars 2005

Merci couou747 mais je le savais pour le mouseout, c'est meme pour ça que j'ai glissé mon code dans l'instruction on mouseout !
pour t'expliquer le code, malheureusement je ne peux pas le faire car il provient d'un générateur de javascript et je ne comprends pas tout moi meme !!!
Quelqu'un d'autre a-t-il des suggestions ?

Lotte
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Salut,

onMouseOut="this.style.background='"+bgcolor+"'";"skn.visibility='hidden'"

pourquoi echappes-tu les guillemets du milieu, et d'ailleurs, que font-ils la?
Dans une page html normale ca donnerait ca normalement :

onMouseOut="this.style.background='bgcolor';skn.visibility='hidden'"

Or ton code donne ca :

onMouseOut="this.style.background='bgcolor' ";"skn.visibility='hidden'"

Perso, je ne l'ai jamais ecrit comme ca et ne suis pas tres sur que cela doive fonctionner.