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 :

Drag & Drop d'un canvas vers un conteneur <div>


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de Thibault92
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 52
    Points
    52
    Par défaut Drag & Drop d'un canvas vers un conteneur <div>
    Bonjour,

    Je cherche a définir des champs 'draggable' sur une img afficher à l'aide d'un canvas, ces champs doivent etre draggable vers une div afficher dans l'écran.

    J'arrive à afficher mon img dans mon canvas, à dessiner des rectangle par dessus mais je n'arrive pas à les rendre draggable.

    Pour dessiner sur le canvas j'ai réalisé une petite fonction JS :

    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
    window.onload = function(){
        var canvas = document.getElementById("canvasframe");
        var context = canvas.getContext("2d");
        var destX = 0;
        var destY = 0;
    	var taillel = 450;
    	var tailleh = 350;
        var imageObj = new Image();
     
        imageObj.src = "ecran/ecran1.png";
        imageObj.onload = function(){
    		//Effet 3D
    		context.shadowOffsetX = 5;
    		context.shadowOffsetY = 5;
    		context.shadowBlur = 5;
    		context.shadowColor = "grey";
    		//Dessin de l'image selon ses parametres
    		context.drawImage(imageObj, destX, destY, taillel, tailleh);
    		//Definition d'un trait par dessus l'image
    		var rectangle1 = context.rect(10,60,70,20);
    		context.lineWidth = 2;
                    context.draggable = true;
    		context.stroke();
     
    		var rectangle2 = context.rect(85,60,70,20);
    		context.lineWidth = 2;
    		context.stroke();		
        };
     
    };
    Cette fonction affiche 'écran1.png' dans la div correspondante coté HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <canvas id="canvasframe" width="460px" height="360px" class="canvas_screen" >
                            Texte si le navigateur ne supporte pas le HTML Canvas
    </canvas>
    Le but est de rendre draggable les deux éléments ( rectangle1 et rectangle2) définis dans la fonction JS vers une div et de pouvoir récuperer leurs id associés.

  2. #2
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Salut, à moins d'être dans un cadre d'entrainement, pourquoi ne pas passer par JQuery ?

  3. #3
    Membre habitué
    Avatar de _tom_
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 67
    Points : 195
    Points
    195
    Par défaut
    Bonjour,

    Je te conseille également Jquery UI pour tout ce qui est interaction "évoluée" en javascript, c'est rapide et très performant

    Jquery draggable

  4. #4
    Membre du Club Avatar de Thibault92
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 52
    Points
    52
    Par défaut
    J'ai déjà pas mal regarder coté Jquery et je ne souhaites pas l'utiliser pour plusieurs raisons :

    1- Je souhaite que mon élément ne soit pas juste draggable, je souhaite que l'utilisateur puisse "drag & drop" sans que l'original ne soit déplacé (c'est plus dans une optique de copie que de simple déplacement)

    2- J'utilise déjà Kendo Ui / Knockout et je n'arrive pas à réaliser cette fonctionnalité à l'aide de ces bibliothèques JavaScript.

  5. #5
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Tu peux simplement, agir sur l'event ondrag de jquery pour lui stipuler de faire/garder une copie à l'emplacement de l'original.
    De toute façon tu vas avoir les mêmes contraintes en JS pur.

  6. #6
    Membre habitué
    Avatar de _tom_
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 67
    Points : 195
    Points
    195
    Par défaut
    Tes raisons ne me paraissent pas très bonnes ^^ :

    1- Je souhaite que mon élément ne soit pas juste draggable, je souhaite que l'utilisateur puisse "drag & drop" sans que l'original ne soit déplacé (c'est plus dans une optique de copie que de simple déplacement)

    ->comme le dit Pymento, tu peux le configurer pour que cela fasse ce que tu souhaites

    2- J'utilise déjà Kendo Ui / Knockout et je n'arrive pas à réaliser cette fonctionnalité à l'aide de ces bibliothèques JavaScript.

    -> Si tu utilises le lien que j'ai mis dans mon précédent post, tu devrais y arriver

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

Discussions similaires

  1. Drag and Drop d'un JTree vers un JPanel
    Par Furlaz dans le forum Composants
    Réponses: 2
    Dernier message: 29/08/2013, 02h38
  2. Réponses: 1
    Dernier message: 20/11/2008, 19h50
  3. Drag n Drop d'un tree vers une list
    Par greatalain dans le forum Flex
    Réponses: 1
    Dernier message: 25/04/2008, 11h51
  4. [C#][xaml] drag and drop entre 2 canvas
    Par matb33 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 04/07/2007, 16h34
  5. Réponses: 2
    Dernier message: 08/11/2006, 18h13

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