|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre actif
![]() Inscription : octobre 2008 Messages : 407 ![]() |
Bonsoir à tous,
Je cherche à réaliser un menu déroulant en javascript qui s'ouvre qu'après avoir laisser la souris dessus pendant 200ms. J'ai un problème de parent/enfant lors de la mise en place de la temporisation... Je vous montre deux scripts le premier ou le sous-menu s'ouvre directement(fonctionne) et le deuxième ou le sous-menu s'ouvre après 200ms : Ouverture direct (fonctionne): Code :
Code :
Merci à tous pour votre aide |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
chez moi, ton script marche très bien;
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Oui, le sous-menu s'ouvre aussi avec le deuxième exemple fourni... qu'est-ce qui "ne marche pas" pour toi ?
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
j'ai juste mis un doctype et des balises de script correctes;
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
... et rajouté les /body et /html qui manquaient dans l'extrait ^^ on est d'accord... mais en tout cas le sous-menu s'ouvre bien
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Bonjour,
je note néanmoins un dysfonctionnement lorsque l'on glisse la mouse sur le sous menu ouvert, il y a disparition puis apparition. Il y a en fait une succession de mouveover/mouseout qui s'enchaîne. |
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Inscription : octobre 2008 Messages : 407 ![]() |
exactement Nosmoking, c'est exactement le problème !!!
|
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
puisque tu en parles, il s'agirait plutôt de mettre un mouseout sur le sous-menu, histoire de pouvoir le consulter et sélectionner des choix...
en changeant un peu ton agencement, on obtient ça (c'est peut-être un début) Code :
|
||
|
|
00
|
|
|
#9 | ||||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
le soucis c'est que maintenant tu obtiens un clignotement lorsque tu glisses du sous menu vers le menu.
Pour résoudre le problème il faut mettre un setTimeout sur la fermeture avec un délai de 1, par exemple, juste pour retarder la fermeture et de penser à scratcher le timer à l'ouverture. tu auras au final Code html :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre actif
![]() Inscription : octobre 2008 Messages : 407 ![]() |
Merci NoSmoking,
Effectivement mettre un timer sur la fermeture puis le clear sur l'ouverture supprime la succession indésirable des fonctions. J'ai eu un manque de lucidité , encore merci à vous tous ! P.S. Pour les spans c'est vraiment ce qui m'est venu au moment de la rédaction du post, ça aurait très bien pu être des ul li ou même des divs... |
|
|
00
|
|
|
#11 | ||
|
Membre actif
![]() Inscription : octobre 2008 Messages : 407 ![]() |
Je reviens avec une autre question, arf, il y a des périodes comme ça ou les connexions se font moins bien, lol:
Comment passer un paramètre dans le cas suivant à la fonction dans le setTimeout (le paramètre "param"): Code :
|
||
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
en fait, il me semble que setInterval n'admet pas de 3e argument, contrairement à setInterval;
donc, soit tu passes par setInterval avec un seul passage dans la boucle et tu mets param en 3e argument; euh... soit tu ruses, mais j'ai pas réfléchi comment |
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
coquille ==> edit: "setTimeout n'admet pas de 3e param";
|
|
|
00
|
|
|
#14 | ||
|
Membre actif
![]() Inscription : octobre 2008 Messages : 407 ![]() |
Voici une version un peu plus abouti du système de sous-menu, pour l'instant je fais une horrible concaténation dans les datas du menu pour atteindre son sous-menu plutôt que d'utiliser un childnode.
De toute façon j'ai toujours un problème malgrès les conseils de NoSmoking qui ont bien corrigés le passage du menu au sous-menu mais j'ai maintenant un problème lors du passage d'un menu à un autre...(le sous-menu précédent ne se ferme pas tandis que le sous-menu en cours s'ouvre) Code :
|
||
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
en fait, si tu as défini dans la fonction
this.param=param; je penses que tu peux essayer Code :
|
||
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
ce que tu décris est récurrent quand on travaille sur des événements "mouse";
même si l'effet te semble moins ergonomique, ne laisse pas tomber l'option "click" qui n'a presque que des avantages... |
|
|
00
|
|
|
#17 | ||
|
Membre actif
![]() Inscription : octobre 2008 Messages : 407 ![]() |
Lol on s'est croisé JavaTwister ! #14
Edit: Je viens faire un truc tout simple pour régler le problème du post #14. J'ai rajouté : Code :
Edit n°2: Et hop un retour en arrière, je viens de constater une erreur de fonctionnement lors du passage successif de la souris aux points suivants: ![]() C'est un véritable casse-tête cette histoire de sous-menu, je comprends mieux maintenant les adeptes de Jquery. Visiblement il y a un problème dans le nettoyage des timer, je continue de creuser. Je suis ouvert à toute proposition concernant ce fichu script de sous-menu ! Merci à tous pour votre aide ! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com