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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Souci en javascript avec un div : drag & drop !?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Souci en javascript avec un div : drag & drop !?

n°1296933
moon06
Ignorance is bliss
Posté le 01-02-2006 à 20:51:06  profilanswer
 

Bonsoir :)
 
Pour commencer, il faut dire que j'ai jamais vraiment fait de JavaScript ... donc ce que je fais est un peu à tatillon ! Dans le cas présent j'ai récupéré en grosse partie un script d'un site spécialisé ...  
 
Mon problème est le suivant : comme vous pouvez le voir sur http://www.zonehd.net/drag.php , on peut déplacer le div avec la souris. Vous l'avez sûrement remarqué, au premier mouvement, le div se décale tout seul ... ensuite plus de problème, il suit correctement le curseur !
 
Voici le code source au cas où (:D) :
 

Code :
  1. <html>
  2. <style type="text/css">
  3. .transparent {
  4. top:100px;
  5. left:100px;
  6. background-color:#cccccc;
  7. position:absolute;
  8. width:200;
  9. height:200;
  10. cursor:move;
  11. }
  12. .textetransp {
  13. color:#ffffff;
  14. text-decoration:none;
  15. filter: alpha(opacity=100);
  16. opacity:1;
  17. background-color:#336699;
  18. }
  19. </style>
  20. </html>
  21. <body>
  22. <script language="JavaScript1.2">
  23. <!--
  24. var ie=document.all;
  25. var nn6=document.getElementById&&!document.all;
  26. var isdrag=false;
  27. var x,y;
  28. var dobj;
  29. function movemouse(e)
  30. {
  31.   if (isdrag)
  32.   {
  33.  var X = tx - x;
  34.  var Y = ty - y;
  35. //alert(X+' '+Y);
  36. dobj.style.left = nn6 ? e.clientX + X : event.clientX + X;
  37. dobj.style.top  = nn6 ? e.clientY + Y : event.clientY + Y;
  38.    
  39. return false;
  40.   }
  41.  
  42. }
  43. function selectmouse(e)
  44. {
  45.   var fobj       = nn6 ? e.target : event.srcElement;
  46.   var topelement = nn6 ? "HTML" : "BODY";
  47.   while (fobj.tagName != topelement && fobj.className != "transparent" )
  48.   {
  49.     fobj = nn6 ? fobj.parentNode : fobj.parentElement;
  50.   }
  51.   if (fobj.className=="transparent" )
  52.   {
  53.     isdrag = true;
  54. // objet à déplacer
  55.     dobj = fobj;
  56. // espacement gauche de l'objet
  57.     tx = parseInt(dobj.style.left+0);
  58. // espacement droit de l'objet
  59.     ty = parseInt(dobj.style.top+0);
  60. // position x de la souris
  61.     x = nn6 ? e.clientX : event.clientX;
  62. // position y de la souris
  63.     y = nn6 ? e.clientY : event.clientY;
  64.     document.onmousemove=movemouse;
  65.     return false;
  66.   }
  67. }
  68. document.onmousedown=selectmouse;
  69. document.onmouseup=new Function("isdrag=false" );
  70. //-->
  71. </script>
  72. <div class="transparent" id="transp"><br />
  73. <font class="textetransp">Ceci est un essai</font> <br />
  74. <a href="#" onclick="document.getElementById('transp').style.visibility='hidden';">Fermer !</a></div>
  75. </body>
  76. </html>


 
Merci de votre aide par avance :)


Message édité par moon06 le 01-02-2006 à 20:54:18

---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
mood
Publicité
Posté le 01-02-2006 à 20:51:06  profilanswer
 

n°1297049
moon06
Ignorance is bliss
Posté le 01-02-2006 à 22:34:18  profilanswer
 

[:moon06]


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
n°1297183
moon06
Ignorance is bliss
Posté le 02-02-2006 à 09:58:47  profilanswer
 

euppe encore :)


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
n°1297238
Pitsy
Posté le 02-02-2006 à 11:22:18  profilanswer
 

Hello,
 
je ne maîtrise pas vraiment à fond le sujet, mais vu qu'il faut que je m'y mette un jour je me suis un peu plongée dans ton code.
Vu le retour à la position 0 0 j'ai supposé qu'il n'arrivais pas à obtenir les coordonnées de départ. Pour une raison que j'ignore, il n'arrive pas à trouver le style.left et style.top depuis ton css (pour la suite ça joue vu qu'ils sont redéfinis dans le code). En plaçant les styles directement dans ta balise id "transp", là ça marche:
 
<div class="transparent" id="transp" style="{top:100px;left:100px;}>
 
En espérant que qqn apportera une explication un peu plus probante et peut-être uen solution moins "bricole" :)
 

n°1297242
moon06
Ignorance is bliss
Posté le 02-02-2006 à 11:27:27  profilanswer
 

j'ai trouvé la solution quelques minutes avant ta réponse et c'est exactement ça :)
 
en fait apparemment il n'arrive pas à récupérer le top et le left s'ils sont définis dans le CSS et non "style=" .. :whistle:
 
merci Pitsy ;)


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -

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

  Souci en javascript avec un div : drag & drop !?

 

Sujets relatifs
petit probleme javascriptbesoin d un coup de main en programmation javascript
Conversion en javascriptJavascript pour copier donnée dans un champ de form d'une autre frame
recuperer la valeur d'une variable javascript ??Créer une newsletter en flash ou javascript
Evenement javascript qui ne réagit passouci sur vbscript
Parser du XML avec JavascriptFirefox n'aime pas le XML+XSL+Javascript
Plus de sujets relatifs à : Souci en javascript avec un div : drag & drop !?


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