Bonjour,

Je cherche à tester si un div est survoler par la souris.



Il y a plusieurs possibilités mais j'aimerais trouver quelque chose de plus simple


Méthode 1

Mettre sur le div onMouseOut et onMouseOver. Dans le over on crée une variable qu'on met à on et quand on sort on remet la variable à off. Comme ça quand on veut savoir si la souris est dedans, on test la variable.


Défaut : c'est lourd de mettre onMouseOut et onMouseOver

Méthode 2

Par rapport aux posisitions. On prend les coordonnées du DIV et ses dimensions et on vérifie si la position du curoseur se trouve dedans. Mais

Défaut: hélas, cette solution ne tient pas compte des éventuellements éléments positionné en aboslute et étant position à l'extérieur du div conteneur.


Méthode 3 (Prototype)

Utiliser $$() qui utilise les propriétés CSS pour identifer un ou plusieurs élements.

Si je fais $$('#monDiv'), il me retourne l'element en question. Donc je me suis dit pourquoi pas faire $$('#monDiv:hover') si il ne retourne rien c'est que l'élement n'est pas survolé. Hélas il me tourne toujours l'élément même s'il n'est pas survolé.

Je sais que $$('#monDiv:empty') fonctionne. Il retourne l'élement si seulement il est vide.


Donc ma question concerne la méthode 3... comment puis-je utiliser $$('#monDiv:hover') ?


Merci,