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 confirmé
    Inscrit en
    Mai 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 145
    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 658
    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 658
    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>
    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 !

  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
    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 658
    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 658
    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 ...
    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 !

  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
    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 658
    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 658
    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
    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 !

  7. #7
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Dix ans ... oui au moins si ce n'est plus ...
    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 !

  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
    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);


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  10. #10
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    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
    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