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 :

Coordonnées X et Y d'une image (div)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut Coordonnées X et Y d'une image (div)
    Bonjour,

    Webmaster pour un site amateur, j'ai réalisé une interface web en javascript permettant de "draguer" des div (source) vers une autre div (cible). (glisser/déposer = drag'ndrop)

    Je n'ai utilisé aucune librairies type JQuery, Prototype... uniquement le Javascript.

    Ce que je souhaiterais, c'est créer un bouton "enregistrer position" permettant de sauvegarder en bdd les coordonnées des objets "dragués" (uniquement s'ils sont positionnés sur la div cible). Ce bouton serait associé à une fonction save qui se chargerait d'effectuer la tâche.

    Voici le code actuel de ma page permettant uniquement de draguer les objets/images sources vers l'image cible :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
    var isDragging = false;
    var objectToDrag;
    var obj;
    var ecartX;
    var ecartY;
    var curX;
    var curY;
     
    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;
    }
    En espérant que quelques personnes puissent m'aider...

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    un bouton de type submit! le reste se fait côté serveur

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    A noter qu'avec un bouton type image le clic sur l'image envoie les positions x et y par rapport à l'origine haut gauche de l'image ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    un bouton de type submit! le reste se fait côté serveur
    Oui je savais bien qu'il me fallait un bouton de type submit qui appel une fonction, qui elle-même, appel un script php pour effectuer les requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Enregistrer" onclick="save(???)" />
    C'est au niveau de l'alliance Javascript/Php que je galère un peu plus. J'ai essayé de réaliser une fonction save qui se chargera de récupérer la position des objets, seulement s'ils sont positionnées sur l'image cible. (il faut également que la numérotation des coordonnées ne se fassent que sur l'image, je ne sais pas si cela est possible ???)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    save(element){
    var PosX;
    var PosY;
     
    if (objet est sur limage){
          // alors on récupère les coordonnées X et Y;
          //on appel et on se dirige vers le fichier php qui effectuera la requête vers la bdd
    window.location("traitement.php");
     
    }
    else{
          // sinon on fait rien
    }
    }
    Quelqu'un pourrait-il m'aider à réaliser cette petite fonction ?

    Citation Envoyé par SpaceFrog Voir le message
    A noter qu'avec un bouton type image le clic sur l'image envoie les positions x et y par rapport à l'origine haut gauche de l'image ...
    D'accord mais malheureusement dans mon cas, ce serait plutôt l'inverse. C'est au moment que l'utilisateur lâche sa souris (et donc l'objet une foie "dragué") que j'aimerais récupérer les coordonnées. De plus, j'aimerais que les cordonnées (0;0) se situe en haut à gauche de ma div cible et non pas de ma page internet...

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    je me suis mal exprime 0,0 = haut gauche de l'image pas de la page ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre confirmé Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    je me suis mal exprime 0,0 = haut gauche de l'image pas de la page ...
    Ok SpaceFrog ! Ca pourrait donc être intéressant. Est ce que ce genre de bouton permet de récupérer les coordonnées des objets présents sur l'image concerné (image cible = arrière plan), pour les stocker dans des variables ?

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Le problème de yohan0262 est plus de sauvegarder les positions des divs déplacées non ?

    Il y a bien besoin de javascript.

    Un champ caché que tu remplis à la mode JSON avec par exemple l'id du div, ses coordonnées au moment du drop...

    Je ne sais pas trop où dans ton code, mais qqch comme
    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
     
    <input type="hidden" id="positionDesDivs" value=""/>
     
    <script type="text/javascript">
    //...
    // quelque part dans ton code
    var obj = eval("(" + (document.getElementById("positionDesDivs").value || "{}") +  ")");
    obj[p_id]= {};
    obj[p_id].top = p_posY;
    obj[p_id].left = p_posX;
     
    var items = [];
    for(divid in obj) {
      var divObj = obj[divid];
      items.push(divid + ":" + "{left:" + divObj.left +",top:" + divObj.top+ "}");
    }
    document.getElementById("positionDesDivs").value = "{" + items.join(",") + "}";
     
    </script>

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

Discussions similaires

  1. Récupérer les coordonnées d'un pixel dans une image
    Par amine52002 dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2008, 14h52
  2. Coordonnées d'un clic sur une image
    Par jacques-antoine dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 22/02/2008, 12h06
  3. coordonnées d'un click sur une image
    Par piteon dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 05/04/2007, 22h30
  4. Coordonnées de la souris sur une image
    Par renaud26 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2006, 21h11

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