Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > CSS
CSS Forum d'entraide sur l'utilisation des feuilles de style CSS. Avant de poster : Cours CSS, FAQ CSS, Galerie CSS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/07/2011, 19h02   #1
Membre du Club
 
Inscription : février 2007
Messages : 187
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 187
Points : 41
Points : 41
Par défaut Evènement mousenter et overflow CSS

Bonjour,

Je rencontre un problème avec l'event mouseenter après un mousedown sur un élement en overflow:hidden.

L'event ne se déclenche pas.

Un peu de code documenté pour plus de précision.
http://jsfiddle.net/6333M/2/

Si quelqu'un peut m'expliquer la raison de ce bug, je lui en serais reconnaissant.
Merci d'avance pour vos réponses.
Neilime05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 16h33   #2
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 755
Points : 5 755
Bonjour,

Je ne suis pas sûr d'avoir compris.
Lorsque je clique sur BLA et que je descend vers BLU en gardant le clique enfoncé, le résultat ne se met à jour que lorsque je libère le clique, pour peu que ce qui ait été "draggué" correspond à une zone définie. Je constate le phénomène de BLU vers BLA également. Par contre, si le clique enfoncé ne "drague" pas une zone, le résultat se met à jour dès le changement de div.

Donc pour moi, lorsque vous "dragguez" une zone (le curseur change d'ailleurs de tête -> sens interdit pour dire ok tu as "draggué" quelque chose mais tu ne peux rien en faire ici), vous restez dans la première div. Ce qui fait que votre souris n'entre pas dans la seconde div et donc ne déclenche pas d'évènements.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 20h34   #3
Invité de passage
 
Inscription : mars 2010
Messages : 1
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 1
Points : 1
Points : 1
Bonjour,

Je réexplique la problématique (j'avais posté avec le compte d'un ami le premier message).

D'un point de vu opérationnel, ce que je désire faire c'est de la sélection multiple. En laissant mon clic enfoncé sur BLA et en passant ensuite ma souris sur BLU je désire que les deux soient sélectionnés. Ainsi j'ai un Event onmousedown qui me permet de détecter le premier élément sélectionné puis le onmouseenter qui me permet de détecter les éléments qui suivent au fur et a mesure que je passe par dessus.
Il n'y a donc rien a "draguer" et le test se fait sans que le sens interdit n'apparaisse.

Le problème ici est le suivant :
Si je "mousedown" sur BLU puis passe sur BLA, j'ai bien mon event onmouseenter qui s'exécute à l'instant même ou je rentre dans BLA.
Par contre, si je "mousedown"sur BLA puis passe sur BLU, l'event "mouseenter" ne s'enclenche pas a moins que je relâche ma souris.

La différence entre les deux est que BLA est en overflow hidden et non BLU.

C'est peut-être un peu plus clair ainsi...
Merci en tout cas des retours que vous pourrez me faire.
Crystark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 09h41   #4
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 755
Points : 5 755
Je ne suis pas sûr que Mootools puisse changer quoique ce soit. Je rencontre le problème avec FF 5 mais pas avec IE 7 (ni Chrome).

Le problème me semble lié à la compatibilité CSS entre navigateurs...

Je déplace la discussion sur le forum CSS.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 13h08   #5
Modératrice
 
Avatar de Candygirl
 
Femme
Inscription : juillet 2006
Messages : 1 529
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 40
Localisation : Suisse

Informations forums :
Inscription : juillet 2006
Messages : 1 529
Points : 1 869
Points : 1 869
Hello,

Citation:
Envoyé par Crystark Voir le message
Par contre, si je "mousedown"sur BLA puis passe sur BLU, l'event "mouseenter" ne s'enclenche pas a moins que je relâche ma souris.
Même pas, sur FF, si tu relâches le bouton sans bouger, il ne détecte pas que tu es dans BLU, il faut bouger un minimum la souris pour qu'il le prenne en compte :/

J'ai fait un tout petit test sans JS pour voir comment le :hover était détecté sur les navigateurs lorsqu'on passait d'un div à l'autre en maintenant le clic enfoncé. Si IE et opera s'en sortent impeccablement, Chrome ne le détecte que lors d'un relâchement de souris (dans les deux sens, mais avec ton JS il détecte être dedans) alors que FF rencontre exactement le même problème qu'avec ton JS, quelque soit la valeur de l'overflow autre que visible d'ailleurs (hidden,auto, scroll).

A noter aussi que, lorsque le click initial à lieu hors overflow, les allés/retours dans le sens overflow->pas overflow ne lui posent alors plus de problème, peut-être une piste ?

Autre question que l'on peut se poser, l'overflow est-il vraiment indispensable dans ta construction ? (utilisé pour gérer le dépassement du bloc et pas pour "gérer les flottants")

Si oui, la section javascript me semblerait plus appropriée pour trouver une solution pour pallier à ce problème...
__________________
Les bons réflexes:
  • avant de poser une question:
    règles | faq | tutoriels | recherche
  • clarté, politesse, vocabulaire et orthographe soignés = efficacité
  • remercier ceux qui ont pris le temps d'aider et si c'est le cas
Candygirl est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h21.


 
 
 
 
Partenaires

Hébergement Web