Chargement javascript

julien -  
 Dan -
Bonjour,

J'ai un petit problème avec un javascript qui se charge en dernier dans ma page. Ce script gère un menu déroulant, et tout les menus restent affiché tant que tous les éléments de la pages ne sont pas téléchargés. Je souhaiterait que les menu ne s'affichent pas tant qu'un utilisateur n'a pas passé la souris dessus. Le script se trouve dans un fichier externe.

Si quelqu'un a une soluce ?

voici le code du script

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) {d.style.display='block';}
}


Il y a bien sur, des onmouseover et onmouseout dans les listes qui sont combinés avec du css pour la mise en page.



Merci
Julien

3 réponses

julien
 
Si il n'y a pas de soluce, c'est super embétant car ca ne fait pas trés joli les menus qui déroulants qui s'affichent des le départ...
Je vais voir si jamais je peux trouver une soluce. Je te tiendrais informé.

Julien
1
Dan
 
Voici le code pour ne pas voir les sous menu

(smenu : c'est le nom de ma variable .. )

document.write('<style type="text/css">#smenu1, #smenu2, #smenu3, #smenu4, #smenu5 {display:none;}</style>');

et voici un javascript complet :

document.write('<style type="text/css">#smenu1, #smenu2, #smenu3, #smenu4, #smenu5, #smenu6, #smenu7, #smenu8, #smenu9 {display:none;}</style>');
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=9; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}

et sa feuille de style :

#menu {
position:absolute;
left:3px;
font-size:11px;
font-weight:800;
top:195px;
z-index:100;
font-family:Arial, Helvetica, sans-serif;
width:770px;
height:20px;
}
#menu dl {
float:left;
width:85px;
}
#menu dt {
cursor:pointer;
text-align:center;
font-weight:bold;
background:#FFFFFF;
border:1px solid gray;
margin:1px;
}
#menu dd {
background:#000000;
}
#menu li {
text-align: center;
background: #000000;
}
#menu li a, #menu dt a {
color:#FFFFFF;
text-decoration: none;
display: block;
height: 100%;
border: 0 none;
}
#menu li a:hover, #menu dt a:hover {
background:#333333;
}

bonen chance
0
s.spark Messages postés 2485 Date d'inscription   Statut Contributeur Dernière intervention   618
 
Salut,

J'ai lu dans un autre forum que ce problème est impossible à contourner (j'ai le même problème), mais j'ai quand même des doutes.
0
pkjmr Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   34
 
Tes divs s'affichent par défaut, c'est ça ? T'as essayé de donner un style initial display:none ou visibility:hidden à tes sous-menus ?

Ou alors le problème est-il que le code js s'exécute avant la fin du chargement de la page ?
0