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 du curseur de façon non evenementielle


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut Position du curseur de façon non evenementielle
    Bonjour,

    Je voudrais savoir comment récupérer en JS et sous firefox les coordonnées du curseur de la souris de façon non évenementielle.

    Je veux dire par non evenementielle que je souhaite récupérer a un moment quelconqie de mon script les coordonnées du curseur de la souris sans pour autant avoir a détecter tous les déplacements de cette dernière (pas de mousemove en parallele)...

    J'ai beau cherché sur le net, TOUT ce que j'ai pu trouver est basé sur un système evenementiel... Existe t-il pas tout simplement un truc du style mouse.x ?

  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 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
    Il y aura forcément de l'évènementiel ,
    suffit de lancer une focntion qui te retourne les coordonnées sur le onmousemove du body ...

    concentre tes recherches sur developpez, pas sur tout le net... cette réponse à déja été donnée 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
    30
    31
    32
    33
    34
     
    <html>
    <head>
    <script type='text/javascript'>
    var e
    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;
    document.test.x.value = x; 
    document.test.y.value = y; 
     
    }
    function populate(){document.onmousemove=function(event){getMouse(event)}}
    </script> 
     
    </head> 
     
    <body  onload='populate()' > 
     
    <form name="test"> 
    X: <input type="text" name="x" size="4"> Y: <input type="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
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Merci pour ta réponse, mais c'est exactement ce que j'esperait ne pas avoir...
    J'ai deja une solution évementiel dont j'essaye de me débarasser...

    Je vais donc conclure que c'est impossible... A defaut, existe t-il un moyen pour passer 2 parametres a une fonction evenemenielle ?

    exemple, j'ai une fonction bidule(e, val) que je veux associer a onclick...

    e devrait alors être l'evenement et val un paramètre dont la valeur dépend de l'élément sur lequel on clique (donc fixé dans le code) ?

    genre de la sorte, j'appel ma fonction bidule au moment d'un click sur l'element :

    <img src="./truc.png" onclick="bidule(event, 56)">, event étant là pour pouvoir récupérer la position du curseur dans la fonction (j'espere que l'element onclick contient au moins la position du clic). c'est possible de faire kkchose qui ressemble à ça ? quel serait la syntaxe de l'appel ?

    On considère que la contrainte primaire est de ne pas utiliser le onmousemove !

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function toto(e)
    {
      var posx= e==null ? event.clientX : e.pageX;
      var posy= e==null ? event.clientY : e.pageY;
      var msg = "position = (x,y)";
      alert(msg.replace('x',posx).replace('y',posy));
    }

  5. #5
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    merci pour vos réponses, mais je craint de ne pas comprendre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function toto(e)
    {
      var posx= e==null ? event.clientX : e.pageX;
      var posy= e==null ? event.clientY : e.pageY;
      var msg = "position = (x,y)";
      alert(msg.replace('x',posx).replace('y',posy));
    }
    Juste pour la forme, pourquoi ce msg.replace ? pourquoi pas tout simplement ecrire ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("position=("+posx+","+posy+")")
    Sinon, pour le prototype de la fonction, on est encore dans un cas d'evenementiel avec 1 seul paramètre, l'évenement... Or, l'objectif est de faire soit en non evenementiel (au moins la récupération des coordonnées du curseur), soit de faire une fonction evenementielle capable de recevoir 2 parametres... toto(e, val)

    En fait, je comprend pas bien la réponse...

  6. #6
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    re,

    il faut que tu te mettes bien en tête qu'il y aura forcément un événement pour la récupération de la position du curseur (cela a été dit précédemment).

    je ne vois pas où est le problème, si tu veux passer 2 paramètres à la fonction libre à toi . moi j'en ai passé un seul parce que j'avais pas besoin de plus.

    que fait la fonction ? tu as cliqué, donc il y a l'événement onclick qui a été déclenché. tu l'interceptes, et cet événement contient des informations. tu peux récupérer la position de la souris.

    quant au replace, ben chacun gère les chaînes comme il veut. moi j'aime bien cette méthode (qui ressemble à printf, string.Format, CString.Format et consors) qui me permet d'écrire une chaine formatée sans avoir à me soucier de ne pas me planter avec les guillemets, les +, etc... c'est plus clair et on voit tout de suite à quoi ressemblera le message. ça n'a rien d'obligatoire.
    pourquoi pas tout simplement ecrire ça ?
    parce que justement je ne trouve pas que ce soit plus simple du tout. ici on a peut-être qu'une petite chaîne, mais dans mon taf j'en ai de plus contexte et on s'embrouille...

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

Discussions similaires

  1. [Plugin] Récupérer la position du curseur
    Par Amon dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 12/02/2009, 10h38
  2. Obtenir la position du curseur dans une Image
    Par bastoune dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/11/2003, 21h02
  3. Position du curseur dans un TMemo
    Par yokito dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2003, 16h35
  4. Position du curseur
    Par gimlithedwarf dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/08/2002, 23h45
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

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