Aller au contenu

Menu déroulant JavaScript


ElMoustiko

Sujets conseillés

Mais nondidju !!!! vous n'avez pas lu ^^ J'ai précisé qu'il y avait ce problème sous IE et que j'essayé de le régler :) mais il me faut l'aider d'expert JS (Bobe aide mÔa s'il te plait ;) )

Pour ce qui est d'opera, je n'ai pas testé la version (pas encore définitive), j'essai de me concentrer sur les problèmes d'IE parcequ'opera rend à peu près la même chose que firefox.

Pour ce qui est du fait que quand on passe item9 à item1 du menu suivant oui c'est le bordel, mais logique en effet, puisque on ferme tout et tout se remonte, c'est pourquoi je n'aime pas la version roll over des menu déroulant, mais je veux la mettre au point pour ceux qui veulent.

Laurent, si tu veux faire mumuse, dans le code en commentaire tu as 2 autres cas de figure d'utilisation et un simple morceau de code à échanger pour pouvoir utiliser le comportement onclick.

C'est génial d'avoir un aussi bon rabat-joie, euuuuuuhhh critique (;)) que toi, tu as soulevé la question de navigation au clavier à laquelle je n'avais pas du tout songé :blush: , et bééé c'est formi formidable parceque je vais pouvoir me pencher sur le problème, et je pense que ça va etre "facile" à regler, reste à savoir selon toi (et les autres) comment naviguerais tu au clavier avec ce type de menu, au [tab] je suppose ?

Donc, j'imagine qu'il est possible via JS d'utiliser le onfocus sur l'élément h2 et de dérouler le menu au focus, et si l'on poursuit avec [tab] le menu reste ouvert tant qu'on est dans les sous menu et qd on arrive au titre suivant, on ferme le menu précédent pour ouvrir le nouveau et ainsi de suite. Donc tout espoir n'est pas perdu et je me pencherai sur cette question à un moment :)

Donc je le repete la version roll over n'est pas tout à fait au point, elle fonctionnerais normalement, mais il y a le problème de clignotement qu'il faut résoudre, mais j'ai un peu du mal sur ce point ;)

Sinon comme je le disais vous pouvez faire mumuse à tester les autres versions

En remplaçant la partie située entre :

// Zone à remplacer suivant le type d'utilisation souhaitée.

et

// Fin de la zone de remplacement.

Voilà

Lien vers le commentaire
Partager sur d’autres sites

J'ai fait quelques tests, j'ai remplacé:

if ((relTarg.nodeName.toLowerCase() != 'ul') && (relTarg.nodeName.toLowerCase() != 'li') && (relTarg.nodeName.toLowerCase() != 'h2') && (relTarg.nodeName.toLowerCase() != 'a'))
{
hideAll();
}

par:

var inSubMenu = false;
while( relTarg.nodeType != 9 )
{
   if( relTarg == this )
   {
       inSubMenu = true;
       break;
   }
   
   relTarg = relTarg.parentNode;
}

if( inSubMenu == false )
{
   hideAll();
}

Mais IE veut toujours rien savoir...

Les voies d'IE sont impénétrables :lol:

Je referai quelques essais ce soir

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...