Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Connaitre l'état du mouseover d'un élément sans utiliser le


Messages recommandés

Posté(e) (modifié)

Bonsoir à tous !

J'ai un petite question qui me turlupine depuis quelques jours. J'ai essayé de trouver une réponse qui correspond à mon problème dans le forum, mais rien trouvé qui correspond à mon problème. Aussi, je m'excuse d'avance si il y a déjà eu un sujet dessus, et je remercie ceux qui me communiquerait le lien du dit sujet.

 

Voila l'affaire;

 

J'ai un champ input de type "text" avec un évènement onclick qui affiche un div situé juste en dessous (display='block').

Ce div a lui-même un évènement onmouseout qui masque celui-ci (display='none').

Seulement, je voudrais que quand le pointeur sort du div, ce dernier se masque, mais que si en sortant du div, je suis tout de suite sur le input (donc, j'ai remonté le pointeur), le div reste affiché. Et si, à ce moment je sors du input, le div se masque. Par contre, si je redescend sur le div (qui doit encore être affiché), celui reste affiché.

Vous arrivez à me suivre ???! :P

 

Et donc je n'y arrive pas ! Ce qu'il me manque (il me semble, mais si ça se trouve j'en suis loin !), c'est quand je sors du div (qui est donc affiché, .. display='block'), c'est de connaitre l'état du mouseover du input. Je voudrais savoir quand je sors du div, si je suis au dessus du input (auquel cas le div reste affiché, sinon il disparait).

 

Si vous vous demandez "le pourquoi du comment de tout ça", c'est parce que je veux un select "personnalisé" (avec une texture de fond quand il est déroulé ou non, etc ...) et après avoir cherché sur la toile, j'ai bien trouvé des codes permettant de le faire mais avec pas mal de css et de js, et il me semble qu'il y a moyen de faire plus court ... si seulement je pouvais savoir si je suis au dessus du input en sortant du div ... !

En gros, il faudrait que sur l'évènement onmouseout du div je puisse répérer si je suis au dessus d'un autre élément (le input) .

 

En vous remerciant par avance de l'aide que vous pourrez apporté, je continue mes recherches dans les tréfonds de la toile

Merci à vous

 

Rog

Modifié par Rog

Posté(e)

La méthode que j'utilise consiste à conserver l'élément affiché (ton div) dans une variable (ou dans l'un des attributs de l'objet correspondant à ton "select personnalisé" si tu es doué et que tu as prototypé tout ça comme il faut) de telle sorte que :

1) sur le mouseout de l'input, je programme le timeout (setTimeout) de disparition du div (parce que c'est moche de faire disparaitre le div immédiatement, et parce que..... voir ci-dessous)

2) sur le mouseover du div je déprogramme (clearTimeout) sa disparition (du moins, si c'était sa disparition à lui qui était programmée)

3) sur le mouseout du div, je programme sa disparition

4) sur le mouseover de l'input, ... bin ça dépend si j'attends un evenement particulier pour dérouler le div ou pas, donc je laisse disparaitre ou pas

 

Comme ça, à tout instant, tu es capable de savoir s'il y a un select qui est "déroulé" et de prévoir sa disparition (ou pas) lors du survol des autres éléments.

Au passage, au lieu de le faire disparaitre lors du survol d'un autre élément, il serait plus "convenable" (vu que c'est comme ça que les selects habituels fonctionnent) de le faire disparaitre lors du blur ou lors d'un clic ailleurs sur le document...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...