Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de lien avec drag&drop

    21 mars 2011 à 14:07:28

    Bonjour à tous,

    je rencontre un problème lié au drag&drop :

    j'ai sur ma page plusieurs DIV (contenant des photos) dont la fonction drag&drop est appelée par javascript.
    Jusque là tout va bien...
    Or, lorsque je place un lien sur l'image contenue dans une DIV,
    la fonction drag&drop ne fonctionne plus.

    Je cherche une solution qui me permette par exemple d'atteindre mon lien par double-click pour que la fonction drag&drop soit conservée.
    Petite précision; le lien de l'image appelle un lightbox en javascript (et non un lien externe)

    j'ai donc le code suivant:

    mon drag&drop en javascript:

    function positionne(p_id, p_posX, p_pos_Y){
    document.getElementById(p_id).style.left = p_posX;
    document.getElementById(p_id).style.top = p_pos_Y;
    }
    function getPositionCurseur(e){
    //ie
    if(document.all){
    curX = event.clientX;
    curY = event.clientY;
    }
    
    //netscape 4
    if(document.layers){
    curX = e.pageX;
    curY = e.pageY;
    }
    
    //mozilla
    if(document.getElementById){
    curX = e.clientX;
    curY = e.clientY;
    }
    }
    
    function beginDrag(p_obj,e){
    isDragging = true;
    objectToDrag = p_obj;
    getPositionCurseur(e);
    ecartX = curX - parseInt(objectToDrag.style.left);
    ecartY = curY - parseInt(objectToDrag.style.top);
    }
    
    function drag(e){
    var newPosX;
    var newPosY;
    if(isDragging == true){
    
    getPositionCurseur(e);
    newPosX = curX - ecartX;
    newPosY = curY - ecartY;
    
    objectToDrag.style.left = newPosX + 'px';
    objectToDrag.style.top = newPosY + 'px';
    
    }
    }
    function endDrag(){
    isDragging = false;
    }
    



    et dans mon html :

    <head>
    <script type="text/javascript" src="lightbox.js"></script>
    </head>
    <body onmousemove="drag(event);">
    <div id="img" onmousedown="beginDrag(this,event);" onmouseup="endDrag();">
    <a href="image2.jpg" rel="lightbox">
    <img src="image1.jpg" width="70" height="99"/>
    </a>
    </div>
    <script type="text/javascript">
    positionne('img', '290px', '84px');
    isDragging = false;
    </script>
    </body>
    




    PS: vous aurez compris que je ne suis pas un foudre de guerre en programmation, je suis photographe de formation ;)
    • Partager sur Facebook
    • Partager sur Twitter
      21 mars 2011 à 16:10:39

      Le message qui suit est une réponse automatique activée par un modérateur.
      Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


      Merci d'utiliser les balises de code


      Bonjour,

      Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
      Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message afin d'ajouter ces balises ? Pour cela, sélectionnez votre code à colorer et utilisez le bouton Image utilisateur afin de choisir la coloration adaptée. Veillez à bien choisir le langage de programmation afin que la coloration soit pertinente.

      De plus, veillez à ce que votre code soit correctement indenté.

      Afin de ne pas surcharger le sujet, ne postez pas votre code coloré dans un nouveau message mais éditez le premier (grâce au bouton Image utilisateur).

      Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

      Voici un exemple de code non coloré (mauvais exemple) :

      int main(int argc, char *argv[])
      {
      long choixOperation;

      printf("Choisissez l'operation a effectuer");
      /* etc. */
      }

      Voici maintenant le même code coloré, utilisant la balise "code" (bon exemple) :

      int main(int argc, char *argv[])
      {
          long choixOperation;
      
          printf("Choisissez l'operation a effectuer");
          /* etc. */
      }
      


      C'est plus clair n'est-ce pas ? ;)

      Plus d'informations à ce sujet.

      Merci de votre compréhension. :)
      Les modérateurs.
      • Partager sur Facebook
      • Partager sur Twitter
      Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !

      probleme de lien avec drag&drop

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown