IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Problème de drag & drop


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Par défaut Problème de drag & drop
    Bonjour, je débute en JS et je m'entraîne à la réalisation de drag&drop sur un exemple simple : je veux juste déplacer un div dans une page html.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    function beginDrag(elementToDrag, evt)
    {
    	var x = parseInt(elementToDrag.style.top);
    	var y = parseInt(elementToDrag.style.left);
     
    	var initialMouseX = evt.clientX;
    	var initialMouseY = evt.clientY;
     
    	document.addEventListener("mousemove", moveHandler, false);
    	document.addEventListener("mouseup", upHandler; false);
     
    	evt.stopPropagation();
    	evt.preventDefault();
     
    	function moveHandler(evt)
    	{
    		elementToDrag.style.left = x + (evt.clientX - initialMouseX) + "px";
    		elementToDrag.style.top = y + (evt.clientY - initialMouseY) + "px";
     
    		evt.stopPropagation();
    	}
     
    	function upHandler(evt)
    	{
    		removeListener(document, "mousemove", moveHandler);
    		removeListener(document, "mouseup", upHandler);
     
    		evt.stopPropagation();
    	}
    }
    et voici le body de la page associée. Le div à déplacer est lui même contenu dans un div.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<body>
    		<div style="position: absolute; left: 100px; top: 100px; border: dotted black; padding: 3px; width: 700px; height: 500px; overflow: hidden;">
    			<div id="toDrag" style="width: 128px; height: 128px; background-color: green; position: absolute; top: 50px; left:100px; cursor:hand;"
    				onmousedown = "beginDrag(this, event);" >
     
    			</div>
    		</div>
    	</body>
    Mon problème est que lorsque je drag la zone, le div fait un "bond" et se retrouve à perpet' de la souris. Puis, après ce bond, il suit les déplacements correctement mais n'est pas à l'endroit attendu.

    Pourriez-vous m'aider ?

    Merci

  2. #2
    Membre confirmé Avatar de FidoDido®
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 101
    Par défaut
    ok bon, j'ai trouvé le problème
    une petite inversion conne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	var y = parseInt(elementToDrag.style.top);
    	var x = parseInt(elementToDrag.style.left);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec drag and drop
    Par Nayra dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 16/04/2009, 00h11
  2. Problème de drag'n'drop
    Par Pill_S dans le forum Flex
    Réponses: 2
    Dernier message: 22/02/2008, 13h03
  3. [D2007]Problème de drag n' drop
    Par Fab30 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 26/11/2007, 10h47
  4. Problème de Drag'n'Drop dans un SWF embarqué
    Par Jay00 dans le forum Flex
    Réponses: 5
    Dernier message: 13/08/2007, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo