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

Bibliothèques & Frameworks Discussion :

Gestion de l'ordre dans un Drag & Drop


Sujet :

Bibliothèques & Frameworks

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 46
    Points : 25
    Points
    25
    Par défaut Gestion de l'ordre dans un Drag & Drop
    Bonjour a tous,

    J'utilise le Drag&Drop de Scriptaculous et j'ai un soucis concernant l'ordre de mes objets.

    J'ai a droite de ma page une liste d'images et je voudrais les mettre dans des div situés sur la gauche. Tout se passe normalement, j'ai bien mon drag & drop qui marche, je récupère bien tout le contenu de tout mes div mais j'aurais cependant quelques questions:

    - Pour sérializer le contenu du div dans lequel je viens de déplacer mon image, je récupère la totalité de mon div en faisant une boucle et un childNodes.item(i).
    Est-ce qu'il y a une solution simple comme l'utilise Scriptaculous dans les listes sortable ?

    - Lorsque j'ai par exemple deux images dans un div et que je souhaite en ajouter une troisième, je suis obligé de la rajouter à la suite, n'est-il pas possible de mettre mon image avant la 1ere ou entre les deux ?

    - Comment enlever l'effet lorsqu'on vient de droppé un élement, j'ai l'élèment qui part d'un coin de l'écran pour faire une transition vers le point où je viens de le déposer ...

    Merci a tout ceux qui pourront m'aider.

    Bonne journée,

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Salut,
    Voici mes suggestions :
    Citation Envoyé par fefe69 Voir le message
    - Pour sérializer le contenu du div dans lequel je viens de déplacer mon image, je récupère la totalité de mon div en faisant une boucle et un childNodes.item(i).
    admettons que la div dans laquelle tu dropes tes images ait l'ID "target",
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var childElems = $("target").childElements();
    var ids = childElems .invoke("identify").join(",");
    var srcs = childElems.pluck("src");
    et tu récupères la liste des ids en une string séparée par des virgules et un tableau des src des images...
    Citation Envoyé par fefe69 Voir le message
    - Lorsque j'ai par exemple deux images dans un div et que je souhaite en ajouter une troisième, je suis obligé de la rajouter à la suite, n'est-il pas possible de mettre mon image avant la 1ere ou entre les deux ?
    J'ai déjà joué à ca ; le truc, c'est d'implémenter le onHover du droppable, et de jouer sur les positions du draggable et le contenu du droppable.
    Ensuite, moi j'ai une div dont l'Element prototype est variabilisé en tempoDiv, qui a un style en pointillé qui me sert à montrer ou va aller mon objet dragger.
    Je deplace cette div dans le droppable, et au moment du drop, j'insère systématiquement après tempoDiv le drag.
    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
    onHover:function(drag, drop, pct) {
      // on recupere les images dejà presentes :
      var images= drop.select( "img" );
      if(images.length == 0) {
        // facile on insere le tempo div
        drop.insert({bottom: tempoDiv});
      } else {
        // on recupere la position du drag
        var posDrag = drag.cumulativeOffset();
        // Pour chaque image
        for(var i=0;i< images.length; i++) {
          // recupere la position de l'image
          var imgPos = images[i].cumulativeOffset();
          // recupere la dimension de l'image
          var imgDim = images[i].getDimensions();
          // je ne traite que le cas où tes images vont l'une sous l'autre (elles pourraient aller l'une a coté de l'autre, tu n'auras aucun mal a changer le code...
          // si on est au dessus de l'image
          if(posDrag.top >= imgPos.top && posDrag.top <= imgPos.top + imgDim.height) {
            if(posDrag.top < imgPos.top + (imgDim.height / 2) ) {
              // si tu es sur sa moitié sup on insere la div temporaire avant l'image
              images[i].insert({before: tempoDiv});
            } else {
              // si tu es sur sa moitié inf on insere la div temporaire après l'image
              images[i].insert({after: tempoDiv});
            }
            break;
          }
        }
      }
    }
    Citation Envoyé par fefe69 Voir le message
    - Comment enlever l'effet lorsqu'on vient de droppé un élement, j'ai l'élèment qui part d'un coin de l'écran pour faire une transition vers le point où je viens de le déposer ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    new Draggable(this.element, {
      reverteffect:function(element, top_offset, left_offset) {
      new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: 0})
    }
    });

Discussions similaires

  1. [Débutant] Ordre de séquence Drag and Drop
    Par willow007 dans le forum C#
    Réponses: 1
    Dernier message: 28/06/2011, 17h58
  2. RJS - Récuperer la liste glisée dans le drag and drop
    Par devmassi dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 16/10/2007, 10h33
  3. pb dans un drag and drop lors de sélection d'un élément a bouger
    Par WalidNat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2006, 12h56
  4. Savoir ou est deposé un fichier dans un drag and drop ?
    Par mkdual dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 24/08/2005, 17h52

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