11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'utilise la fonction suivante pour afficher/masquer les sous-menus de mon site :

function dynMenu() {
derouleur = new getElementsByClassName(document, "deroulant");
if(derouleur){
  for(var i=0;i<derouleur.length;i++) {
  derouleur[i].getElementsByTagName("dd")[0].style.display="none";
    derouleur[i].onmouseover=derouleur[i].onfocus=function(){
      smenu=this.getElementsByTagName("dd")[0];
      if(smenu){this.className = "survol"; smenu.style.display="block"}
    	}
   derouleur[i].onmouseout=function(){
	if(smenu){this.className = "deroulant";  smenu.style.display="none"}
   }
  }
}
}

pour l'appeler au chargement de la page j'utilise la fonction de Scott Andrew :

function addEvent(oElem, sEvType, fn, bCapture)
{
   return oElem.addEventListener?
      oElem.addEventListener(sEvType, fn, bCapture):
      oElem.attachEvent?
         oElem.attachEvent('on' + sEvType, fn):
         oElem['on' + sEvType] = fn;
}

... et son appel :

addEvent(window, 'load', dynMenu, false);


Mon problème, c'est que la fonction dynMenu ne s'exécute qu'une fois la page affichée complètement. Ainsi, mes sous-menus restent visibles pendant tout le temps de chargement de ma page; l'effet n'est pas très classe.

Comment faire pour que mes sous-menus se masquent avant l'affichage de ma page ? Avez-vous une idée ?

Merci.[/i][/i][/i][/i]
Modifié par SaluCseb (02 Sep 2007 - 18:37)