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 :

Obtenir la position d'une zone sélectionnée par l'utilisateur


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut Obtenir la position d'une zone sélectionnée par l'utilisateur
    Bonjour à tous,

    je souhaiterai savoir s'il est possible d'obtenir les coordonnées d'une zone de sélection tracée par l'utilisateur. Le but est d'obtenir les x et y du point supérieur gauche et la taille du rectangle de sélection.

    Merci d'avance.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Bonjour,

    Un exemple vaut mieux qu'un long discours.
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    <!DOCTYPE HTML>
    <html>
    	<head>
            <title>Test</title>
            <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js'></script>
            <style>
     
                html, body
                {
                    padding: 0;
                    margin: 0;
                }
     
                .whiteBoard
                {
                    width: 1000px;
                    height: 800px;
                    border: solid red 2px;
                    cursor: crosshair;
                }
     
                .marquee
                {
                    position: absolute;
                    left: 0px;
                    top: 0px;
                    width: 20px;
                    height: 20px;
                    border: dotted 1px grey;
                }
     
                .cache
                {
                    display: none;
                }
     
            </style>
            <script>
                var isDrawing = false;
                var marqueeCoords = {left: undefined, top: undefined, width: undefined, height: undefined, ol: undefined, ot: undefined};
     
                $(document)
                    .ready(init);
     
                function init()
                {
                    $('.whiteBoard')
                        .on (
                                'mousedown',
                                function (e)
                                {
                                    $('.marquee')
                                        .removeClass('cache');
                                    marqueeCoords.ol = e.clientX;
                                    marqueeCoords.ot = e.clientY;
                                }
                            )
                        .on (
                                'mouseup',
                                function (e)
                                {
                                    $('.marquee')
                                        .addClass('cache');
                                    $('.coords').html(JSON.stringify({gauche: marqueeCoords.left, haut: marqueeCoords.top, largeur: marqueeCoords.width, hauteur: marqueeCoords.height, temoin: marqueeCoords.tm}));
                                    marqueeCoords = {left: undefined, top: undefined, width: undefined, height: undefined, ol: undefined, ot: undefined};
                                    $('.marquee')
                                        .css({left: '0px', top: '0px', width: '0px', height: '0px'});
                                }
                            )
                        .on (
                                'mousemove',
                                function (e)
                                {
                                    marqueeCoords.width = e.clientX - marqueeCoords.ol;
                                    marqueeCoords.height = e.clientY - marqueeCoords.ot;
                                    marqueeCoords.left = marqueeCoords.ol;
                                    marqueeCoords.top = marqueeCoords.ot;
                                    if (marqueeCoords.width < 0)
                                    {
                                        marqueeCoords.left += marqueeCoords.width;
                                        marqueeCoords.width = Math.abs(marqueeCoords.width);
                                    }
                                    if (marqueeCoords.height < 0)
                                    {
                                        marqueeCoords.top += marqueeCoords.height;
                                        marqueeCoords.height = Math.abs(marqueeCoords.height);                                    
                                    }
                                    $('.marquee')
                                        .css({left: marqueeCoords.left + 'px', top: marqueeCoords.top + 'px', width: marqueeCoords.width + 'px', height: marqueeCoords.height + 'px'});
                                }
                            );
                }
            </script>
        </head>
    	<body>
            <div class="whiteBoard">
                <div class="marquee cache">
                </div>
            </div>
            <div class="coords"></div>
        </body>
    </html>
    A étudier pour adaptation à tes besoins, en espérant que ça t'aide un peu.

  3. #3
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Merci beaucoup, je test ca et je fais un retour.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

Discussions similaires

  1. [XL-2007] Colorier une zone imposé par l'utilisateur
    Par souad12 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/08/2011, 01h50
  2. [Google Maps] Récupérer infos d'une zone sélectionnée par polygone
    Par Chouller dans le forum APIs Google
    Réponses: 1
    Dernier message: 24/07/2009, 14h53
  3. onchange d'une zone remplie par programmation
    Par japz dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/05/2006, 13h58
  4. [MySQL] Envoi identifiant d'une zone membre par mail
    Par vinche999 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/01/2006, 23h12

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