Menu avec affichage du sous-menu au survol

lotte3 Messages postés 40 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 15 mars 2005 - 14 janv. 2005 à 16:16
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 17 janv. 2005 à 10:37
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

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
16 janv. 2005 à 11:45
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
0
lotte3 Messages postés 40 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 15 mars 2005
17 janv. 2005 à 09:34
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
17 janv. 2005 à 10:37
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.
0