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 :

Récupérer la postion de la souris sur une image


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut Récupérer la postion de la souris sur une image
    Bonjour,

    Je souhaite récupérer la position de la souris sur une image. (coin haut gauche de l'image devant représenter les coordonnées 0,0.

    pour l'instant j'ai trouvé ça :
    function register_position(){
    mouse_x = 0;
    mouse_y = 0;
    document.onmousemove = position;
    }
    function position(evt){
    if(!evt) evt = window.event;
    mouse_x = evt.clientX;
    mouse_y = evt.clientY;
    document.getElementById("X").innerHTML = "X : "+mouse_x+" ; Y : "+mouse_y;
    }
    if(navigator.appName.substring(0,3) == "Net")
    document.captureEvents(Event.mousemove);
    document.onclick = GetCoordonnee;

    Au niveau du html j'ai rajouté :

    <body onLoad="register_position()">

    ....
    <p id="X">&nbsp;</p>
    <p id="X">&nbsp;</p>
    ....

    Ce qui me permet de récupérer les coordonnées de la souris dans le browser (IE ou Firefox) mais comment faire pour avoir les coordonnées dans l'image ???
    pour l'instant je n'ai pas trouvé. (ou pas compris ce que j'ai pu lire à ce sujet).

    Si qqu'un à déjà réalisé un bout de script s'approchant de se que je veux faire....

    Merci

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Par défaut
    Je pense que je pourrais t'aider. Parse que nous avons eu les coordonnées de la souris dans le browser (X, Y). Voilà tout ce que tu dois faire : utiliser deux properties offsetTop and offsetLeft pour récupérer l'espacement du sommet et de la marge gauche, à ton image (iTop, iLeft);

    Alors, les coordonnées de la souris sur une image, ce sont les valeurs X-iTop et Y-iLeft

    Demo :

    http://sacroyant.uni.cc/Examples/oldest/cursoronpic.htm

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Par défaut
    C'est simple c'est exactement ce que je cherchais

    En plus ça marche sous IE et sous Firefoxe

    un grand grand merci !!

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Bonjour,

    je me permet de ressortir ce vieux topic. J'ai exactement les mêmes besoins, sauf que mon image est au milieu d'une multitude de div imbriquées... Et les valeurs renvoyées par ce code sont complètement fausses (IE et Firefox)....

    Est-ce que quelqu'un connait un bon moyen de faire cela ?

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour Pill_S,
    Citation Envoyé par Pill_S Voir le message
    J'ai exactement les mêmes besoins, sauf que mon image est au milieu d'une multitude de div imbriquées... Et les valeurs renvoyées par ce code sont complètement fausses (IE et Firefox)....
    dans ce code les coordonnées sont calculées par rapport à la fenêtre. Les div conteneurs ne devraient pas "tout casser".
    Par contre, il peut y avoir de légères différences entre IE et Firefox (ex : dans le lien donné, sous IE 6 les pixels commencent à 3X3 alors que sous FF c'est bien 1X1). Qu'entends-tu, toi, par "complétement fausses" ?
    Est-ce la même erreur avec tous les nav ?
    Quelles valeurs récupères-tu au lieu de quelles valeurs attendues ?
    Peut-on voir ta version du code ?

    A+

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour Pill_S,
    dans ce code les coordonnées sont calculées par rapport à la fenêtre. Les div conteneurs ne devraient pas "tout casser".
    Par contre, il peut y avoir de légères différences entre IE et Firefox (ex : dans le lien donné, sous IE 6 les pixels commencent à 3X3 alors que sous FF c'est bien 1X1). Qu'entends-tu, toi, par "complétement fausses" ?
    Est-ce la même erreur avec tous les nav ?
    Quelles valeurs récupères-tu au lieu de quelles valeurs attendues ?
    Peut-on voir ta version du code ?

    A+
    Complètement fausse, càd que après calcul, je récupère des valeurs négatives pour la position de mon clic (genre X=100, Y=-300)... et encore, c'est aléatoire, des fois après quelques refresh les bonnes valeurs retombent...

    FF et IE6 réagissent comme ça. Mon code vient de la FAQ (ici)

    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
     
    function computeOffsetLeft(r) {
        return computeOffset(r, "offsetLeft");
    }
    function computeOffsetTop(r) {
        return computeOffset(r, "offsetTop");
    }
    function computeOffset(element, attr) {
        var offset = 0;
        while (element) {
            offset += element[attr];
            element = element.offsetParent;
        }
        return offset;
    }
     
    function fillTextFieldWithMousePos(xxx, imgid, fieldX, fieldY) {
        if (navigator.appName == "Netscape") {
            document.captureEvents(Event.CLICK);
        }
        if (!xxx) {
            xxx = window.event;
        }
     
        //var src = (typeof xxx.target != "undefined")?xxx.target:xxx.srcElement;
        var src = document.getElementById(imgid);
        document.getElementById(fieldX).value = xxx.clientX - computeOffsetLeft(src);
        document.getElementById(fieldY).value = xxx.clientY - computeOffsetTop(src);
    }
    PS: après plusieurs tests, il semblerait que la position de la scrollbar verticale influence les résultats...

    Une idée?

    Merci pour ton aide

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

Discussions similaires

  1. Récupérer la position de la souris sur une image
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/04/2011, 13h15
  2. [DHTML]position de la souris sur une image
    Par Daï2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/05/2006, 15h57
  3. 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
  4. Réponses: 2
    Dernier message: 28/07/2005, 03h59
  5. coordonnées d'un clic souris sur une image
    Par marcuswgs84 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2005, 19h08

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