Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2174 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  div surperposées et onMouseOver

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

div surperposées et onMouseOver

n°1726515
Bob2024
...
Posté le 29-04-2008 à 19:21:21  profilanswer
 

Bonsoir,
 
Je suis en train de faire un librairie js qui reproduit le comportement de l'explorateur Windows (XP). Tout allait bien jusqu'à ce que je tente d'implémenter le glisser/déposer.
J'ai fait un truc à ma sauce qui crée une div reproduisant l'affichage du dossier qu'on veut glisser (avec transparence toussa). Cette div est d'abord positionnée au même endroit que le dossier source puis, suit le curseur bien sûr (comme dans l'explorateur quoi).
Le problème : Pour connaitre la destination je voulais utiliser les évènements onMouseOver et onMouseOut sur les div des dossiers (genre : c'est moi qui ai choper le ballon je valorise une variable globale à mon_id) . MAIS, parce qu'il y a un mais, ces connar*s d'évènements ne veulent pas se déclencher car ils sont "capter" (je pense) par la div copie qui se trouve fatalement entre le curseur et la div réceptrice.  
Une des solution c'est de créer la div copie légèrement décalée avec le curseur mais c'est moins beau (au moment ou on "prend" le dossier on voit un truc apparaître ailleurs, c'est moins classe).
 
La question : Comment faire en sorte que les événements des div sous ma copie se déclenchent ?
 
Contrainte : C'est du code destiné uniquement à I.E. (6 aujourd'hui). (C'est pas ma faute hein, c'est au boulot)  
 
Merci d'avance.

mood
Publicité
Posté le 29-04-2008 à 19:21:21  profilanswer
 

n°1726887
Bob2024
...
Posté le 30-04-2008 à 14:21:17  profilanswer
 

Je ne vois que trois explications possibles à votre absence de réponse :
1. Je sens mauvais du clavier.
2. Mon problème n'est pas suffisamment clair.
3. J'aurais pas dû poser ma question sur un forum de noobs ( :o )

 

PS : Dites moi 2, au moins, ça me laisserait de l'espoir. Là j'ai choisi l'option qui marche mais moins classe.


Message édité par Bob2024 le 30-04-2008 à 14:21:45
n°1726900
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-04-2008 à 14:37:37  profilanswer
 

http://www.quirksmode.org/js/events_order.html


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1726948
Bob2024
...
Posté le 30-04-2008 à 15:54:48  profilanswer
 

Merci de participer à mon désarroi.

 

Bin, justement, j'avais d'abord lorgné de ce coté là mais j'ai l'impression que la propagation concerne les éléments imbriqués les dans les autres. Dans mon cas, il s'agit d'un élément de position "absolute" au z-index supérieur qui se retrouve à un instant t au dessus (et encore, à moitié) au dessus des div censé récupéré l'évènement => aucun lien de parenté.


Message édité par Bob2024 le 30-04-2008 à 15:55:34
n°1726982
Bob2024
...
Posté le 30-04-2008 à 16:40:37  profilanswer
 

J'ai voulu faire un exemple de code et j'ai avancé dans le bordel :
Essayez ça (si vous voulez hein)

Code :
  1. <head>
  2. </head>
  3. <body>
  4. <div style="position:absolute;width:50px;height:50px;left:110px;top:110px;border:1px solid red;" onmouseover="alert('coucou')">&nbsp;</div>
  5. <div style="position:absolute;width:70px;height:70px;left:100px;top:100px;border:1px solid green;background:transparent;">coucou</div>
  6. </body>


Si je mets un background non transprent : impossible de déclencher le onmouseover. En l'état, vous remarquerez qu'on peut s'introduire dans la div rouge par le texte dans déclencher le onmouseover, par les autres coin, non. Avec de la transparence (filter : alpha(opacity=40) ; ), le comportement change encore ...
Amusant, non ?

 

Du coup, moi je voudrais qu'il se déclenche tout le temps, même avec un fond blanc (IE merde la transparence sur un un fond transparent, c'est pas beau). Une idée ?


Message édité par Bob2024 le 30-04-2008 à 16:41:18
n°1726986
tpierron
Posté le 30-04-2008 à 16:52:04  profilanswer
 

Mouais, une autre solution serait de calculer toi même les positions de tes éléments en fonction des événements mousemove. Le coup du capture/bubble, j'ai le souvenir que c'est la merde avec IE. Calculer la position, c'est faisable, mais le code est à la limite du maintenable.
 
Si tu t'aventures la dedans, je te conseillerais de mettre çe code à part et d'utiliser dans le cas général un modèle d'événement par capture. Si dès fois que IE8 tiennent ses promesses et que ta boîte réalise que IE6 est une bouse de vache sec depuis bien longtemps, tu pourras virer ce code moisis sans le moindre remord.
 
Bon, c'est l'idée générale, faudra fouiller pour le détail.

n°1726996
Bob2024
...
Posté le 30-04-2008 à 16:59:21  profilanswer
 

j'avais penser faire ça mais d'un ça me saoule de le coder, de deux ça sent le truc de merde qui va faire mouliner le moteur js (de merde) d'IE (les machines clientes peuvent très bien venir du siècle dernier et là ... c'est le drame). Pas d'autres solutions ?

n°1727002
Paulp
~, sweet ~
Posté le 30-04-2008 à 17:19:02  profilanswer
 

Avec scriptaculous, ça devrait marcher normalement ...
 
A la limite, teste avec scriptaculous et regarde dans le code ce qui se passe, pour voir la différence avec ton code ...

n°1727022
Bob2024
...
Posté le 30-04-2008 à 17:42:35  profilanswer
 

Je me suis pas totalement tapé le code mais il semblerait que soit un detectage de position justement (ce que je veux pas). De plus, j'ai décidé (à tort) de ne pas utiliser prototype et j'ai grave utiliser des "for i in" dans des tableaux (c'est pas compatible, enfin, ça merde quoi) et ça me fait chier de changer maintenant.
Je crois que je vais garder le principe de la copie en bas à droite du curseur. Ca fait moins joli quand on prend l'objet mais c'est pas choquant (ça améliore la lisibilité même) et surtout, ça marche bien.
 
Merci à tous.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  div surperposées et onMouseOver

 

Sujets relatifs
onMouseOver-Out sur tableauxEvent onmouseover et onmouseout
onmouseover dans divonMouseover/out pour les images bordure
[résolu] changement de texte à un endroit précis avec _ onmouseoverOnMouseOver et IE6 ???
Onmouseover qui veut pas marcherPb onmouseover ne fonctionne pas
>>>survol d'un texte avec la souris<<<preload >100 images avec onmouseover
Plus de sujets relatifs à : div surperposées et onMouseOver


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR