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 :

position x/y du curseur


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 145
    Points : 91
    Points
    91
    Par défaut position x/y du curseur
    bonjour,
    je cherche à récupérer la position de mon curseur lors d'un événement du type onClick.
    j'ai trouvé ça dans la faq(http://javascript.developpez.com/faq...nt#SourisCoord) mais je n'arrive pas à l'adapter, je voudrai qqch de ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mouse_x = 0;
    mouse_y = 0;
    mouse_x = window.event.clientX;
    mouse_y = window.event.clientY;
    document.getElementById("madiv").innerHTML = "X : "+mouse_x+" ; Y : "+mouse_y;

  2. #2
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    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
    <HTML> 
    <HEAD> 
     
    <SCRIPT LANGUAGE="JavaScript"><!-- 
    if (navigator.appName == 'Netscape') { 
    document.captureEvents(Event.MOUSEMOVE); 
    document.onmousemove = netscapeMouseMove; 
    } 
     
    function netscapeMouseMove(e) { 
    if (e.screenX != document.test.x.value && e.screenY != document.test.y.value) { 
    document.test.x.value = e.screenX; 
    document.test.y.value = e.screenY; 
    } 
    } 
     
    function microsoftMouseMove() { 
    if (window.event.x != document.test.x.value && window.event.y != document.test.y.value) { 
    document.test.x.value = window.event.x; 
    document.test.y.value = window.event.y; 
    } 
    } 
    //--></SCRIPT> 
     
    </HEAD> 
     
    <BODY onmousemove="microsoftMouseMove()"> <!-- onmousedown="microsoftMouseMove()" onmouseup="microsoftMouseMove()" --> 
     
    <FORM NAME="test"> 
    X: <INPUT TYPE="TEXT" NAME="x" SIZE="4"> Y: <INPUT TYPUE="TEXT" NAME="y" SIZE="4"> 
    </FORM> 
     
    </BODY> 
    </HTML>

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par SpaceFrog
    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
    <HTML> 
    <HEAD> 
     
    <SCRIPT LANGUAGE="JavaScript"><!-- 
    if (navigator.appName == 'Netscape') { 
    document.captureEvents(Event.MOUSEMOVE); 
    document.onmousemove = netscapeMouseMove; 
    } 
     
    function netscapeMouseMove(e) { 
    if (e.screenX != document.test.x.value && e.screenY != document.test.y.value) { 
    document.test.x.value = e.screenX; 
    document.test.y.value = e.screenY; 
    } 
    } 
     
    function microsoftMouseMove() { 
    if (window.event.x != document.test.x.value && window.event.y != document.test.y.value) { 
    document.test.x.value = window.event.x; 
    document.test.y.value = window.event.y; 
    } 
    } 
    //--></SCRIPT> 
     
    </HEAD> 
     
    <BODY onmousemove="microsoftMouseMove()"> <!-- onmousedown="microsoftMouseMove()" onmouseup="microsoftMouseMove()" --> 
     
    <FORM NAME="test"> 
    X: <INPUT TYPE="TEXT" NAME="x" SIZE="4"> Y: <INPUT TYPUE="TEXT" NAME="y" SIZE="4"> 
    </FORM> 
     
    </BODY> 
    </HTML>
    En un peu plus compliant
    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
     
    /* getMouse : 
    	Récupère les coordonnées de la souris et les met dans les variables globales 
    		window.mouseX
    	et	window.mouseY, 
    		il faut passer event en paramètre sur les évènements
    	ex : 
    		function fun(param1, param2, e) {
    			getMouse(e);
    			sourisX = window.mouseX;
    			sourisY = window.mouseY
    		}
    		fun("foo", "bar", event);
     
    */
    /* getMouse :  */
    function getMouse(e){
    	var x,y; var elt = document.documentElement;
    	if ( document.captureEvents ) {
    		x = e.pageX;
    		y = e.pageY;
    	} else if ( window.event.clientX ) {
    		x = window.event.clientX+elt.scrollLeft;
    		y = window.event.clientY+elt.scrollTop;
    	}
    	window.mouseX = x;
    	window.mouseY = y;
    }

  4. #4
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Oui bon je sais ça trahit mon age ...
    j'ai resorti un vieux code ...
    Mais en ce temps là c'est comme ça qu'on faisait mossieur ^^

    sauf que ton code ne marche pas sous FFX ...

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par SpaceFrog
    Oui bon je sais ça trahit mon age ...
    j'ai resorti un vieux code ...
    Mais en ce temps là c'est comme ça qu'on faisait mossieur ^^

    sauf que ton code ne marche pas sous FFX ...
    Non il ne marche pas sous Final Fantasy X mais sous Firefox Oui et si tu prenais la peine de lire les commentaires tu verrais pourquoi

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body onmousemove="getMouse(event); this.innerHTML = window.mouseX">
     
    </body>
    oui je sais la demo est un peu crade.

    Ensuite si tu veux la rajouter depuis le JS ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    document.body.onmousemove = function(e) {
       getMouse(event);
       this.innerHTML = window.mouseX;
    }

  6. #6
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    arf désolé j'étais resté sur getMouse(e) et pas event ...

    Par contre pour FFX c'est son acronyme officiel

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Citation Envoyé par SpaceFrog
    Oui bon je sais ça trahit mon age ...
    j'ai resorti un vieux code ...
    Mais en ce temps là c'est comme ça qu'on faisait mossieur ^^

    sauf que ton code ne marche pas sous FFX ...
    Ca date d'y a dix ans non?

  8. #8
    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 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Dix ans ... oui au moins si ce n'est plus ...

  9. #9
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    Une solution un peu plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     var xMouse, yMouse;
     
    function posSouris(e)
           {
           xMouse = (navigator.appName.substring(0,3) == "Mic") ? event.x+document.body.scrollLeft : e.pageX ;
           yMouse = (navigator.appName.substring(0,3) == "Mic") ? event.y+document.body.scrollTop  : e.pageY ;
        }
    (window.document.attachEvent)    ? window.document.attachEvent("onmousemove", posSouris) : window.addEventListener("mousemove", posSouris, false);

  10. #10
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Et surtout mal codée

  11. #11
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par roro06
    Bonjour

    Une solution un peu plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     var xMouse, yMouse;
     
    function posSouris(e)
           {
           xMouse = (navigator.appName.substring(0,3) == "Mic") ? event.x+document.body.scrollLeft : e.pageX ;
           yMouse = (navigator.appName.substring(0,3) == "Mic") ? event.y+document.body.scrollTop  : e.pageY ;
        }
    (window.document.attachEvent)    ? window.document.attachEvent("onmousemove", posSouris) : window.addEventListener("mousemove", posSouris, false);

    Ta solution est :
    -Pas plus simple
    -Se base sur le userAgent alors qu'il faut tester l'objet
    -Passe par le onmousemove alors que ce n'est pas forcément sur le onmousemove qu'on cherche à détecter la position du curseur

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/06/2010, 12h07
  2. Réponses: 7
    Dernier message: 30/04/2009, 15h49
  3. recuperer la position x y du curseur dans une texte area
    Par nsanabi dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/03/2009, 12h31
  4. Position en pixel du curseur dans un TextBox
    Par nihaoma dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2007, 13h51
  5. Réponses: 2
    Dernier message: 06/07/2006, 14h28

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