Chargement javascript

Fermé
julien - 31 août 2007 à 22:10
 Dan - 14 mars 2008 à 16:13
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

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
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 vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
31 août 2007 à 22:15
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 mercredi 30 mai 2007 Statut Membre Dernière intervention 21 février 2011 33
1 sept. 2007 à 02:44
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