Position du curseur [Résolu]

Signaler
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Salut, est-ce qu'il y a un moyen en javascript de connaitre à tout moment la position de la souris et l'état des boutons sans passer par les évènements ??

11 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
B
onsoir...
Sans événement point de salut...
;0)
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
6
Salutation,
    le pense que le terme de bouton doit s'appliquer à la souris ( onmousedown, onmouseup )
    après le onmousemouse pour la souris mais les evenements sont donc inévitables !

[o-_-o]
Messages postés
731
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
27 mai 2010

moi aussi je cherche sa mais je penses que non en js
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

pourquoi ne pas passer par les évênements ?
en javascript, l'evênement onmousemove détecte le déplacement
    de la souris. à ce moment là, on sait où elle est.

>>état des boutons
c'est à dire ? quels boutons ?
car si on cause ou le fait de cliquer
    dessus ne fait que déclencher l'action associée ( javascript )




<hr />



Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
tu as probablement raison Zobibol.
et je redemande,

pourquoi, en html/javascript ne pas passer par les évênements ?

ça peut être utile (?) parfois (?) dans d'autres langages (euh?). en JavaScript, je ne vois pas


<hr />



Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Merci pour vos réponses.

Bultez, bien sûr que ça peut être utile dans d'autres langages.. là je vais me débrouiller avec le onmousemove :p

En ce qui concerne l'état des boutons, je parle bien évidemment des boutons de la souris. J'ai une interface wpfe en xaml et le onmouseup du canvas n'est pas toujours appelé et ça me pose des problèmes pour libérer la souris si je l'ai capturé dans le onmousedown. Je vais essayer de régler ça avec les évènements du container du contrôle wpfe.
Messages postés
2
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
8 mars 2007

Ah... Ce qui pourrait être utile dans d'autres langages ne le serait plus en JavaScript... Est-ce à dire qu'en JavaScript il n'y a pas de position du curseur sans évènement ? (merci à Bultez d'y réfléchir). Et est-ce utile de répondre, à quelqu'un qui demande comment faire quelquechose, si ce qu'il demande est utile ? (tant qu'on ne voit pas, Bultez, il faut continuer de regarder, et du moins ne rien dire - tant mieux si tu n'a jamais eu à te poser la question, quelque part. Mais dans ce cas...). Bref. On a l'habitude de ce genre de perte de temps.

En effet, Lutinore, cette question se pose. Je n'ai pas trouvé la réponse attendue. Mais OUI, il existe un moyen de capturer A TOUT MOMENT (tout en passant certes quand-même par l'évènement, mais pas de la façon dont on s'y attendrait). Note tout de même que je ne développe que sous IE (je ne sais pas ce que ça donne avec un autre navigateur). En fait, cette capture automatique et permanente se fait vie une règle de style. Peu importe à quel élément l'on applique cette règle, mais elle dit, par exemple :

IMG.maClasse {
                        position : absolute;
                        top: expression( ma_fonction() )
 }

avec dans le JavaScript :

var oBody = document.body
ma_fonction(){
                     try{ return event.clientY + oBody.scrollTop}.
                     catch(e) {}
}

on notera qu'il n'est pas indispensable de déclarer aussi { left : expression(autre_fonction()) }. Ca ferait peut-être trop travailler le navigateur. Mais ma_fonction() peut contenir le reste du script à exécuter. Ce qui compte, c'est qu'elle permet l'appel permanent et automatique à la position de la souris (certes... via event, car hélas je n'ai pas trouvé comment faire sans l'objet event).
Commentaire : l'utilisation de try est du au fait qu'il n'y a pas toujours d'évènement. Cela permet d'éviter tout bug, tout en garantissant la capture en permanence. Et loin de signifier qu'il n'y a pas de position du curseur sans evènement, cela signifie simplement  que le DHTML a manifestement ses limites et contraintes.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
quel galimatia et ramassis de n'importe quoi...

>> Ce qui pourrait être utile dans d'autres langages ne le serait plus en JavaScript..
c'est exactement le contraire !!!! dans certains langages les evênements du style
    onmousemove n'existent pas, et il faut bien y palier. en javascript il y a ce
    qu'il faut. Pourquoi vouloir éviter un évênement qui répond parfaitement
    à la question, au problème à résoudre  ???!!!???

>>Je n'ai pas trouvé la réponse attendue. Mais OUI, il existe un moyen de
capturer
>>A TOUT MOMENT  (tout en passant certes quand-même par
l'évènement...
    ?!???!!!! comment qualifier cette réponse, qui se contredit elle-même ????
    qui ne répond pas à la question posée, et qui ne fonctionne pas ????




>>tant mieux si tu n'a jamais eu à te poser la question

    euh... on pose une question à la communauté,
    et ma réponse fut la même que les autres intervenants, certes, formulée autrement.




<hr />



Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
j'ajouterais que si je posais cette question ( pourquoi vouloir ne pas uttiliser
    le onmousemove ) c'est que peut-être, dans un cas particulier, cela pouvait
    ne pas convenir, et qu'en expliquant le problème, les intervenants auraient,
    sans aucun doute, trouver une réponse, une alternative....

<hr />


Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
Messages postés
2
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
8 mars 2007

C'est sympa de chercher des alternatives. Mais comprend bien que là on cherche une alternative à l'utilisation des onmachinchose. Je dois peut-être préciser que c'est la version 6 (d'IE, comme indiqué) que j'utilise, puisque ça marche sur mon poste.Et l'utilité de cette méthode, c'est par exemple qu'elle m'évite de recourir à un "onmousedown fonction_initialisant_élémentZ", ainsi qu'à un attribut pour BODY du genre "onmouseover fonction_déplaçant_élémentZ". Ceci, surtout lorsque je veux limiter le nombre de changemants en dynamique -selon les besoin du moment-, de la fonction appelée par document.body.onmousedown (et assurer en plus, lorsque c'est nécessaire une fois le processus x ou y périmé, le retour à l'ancien onmousedown écrasé), ou encore ne pas avoir à ce que chaque "onmousedown = fonction_x ou fonction_y" doive gérer aussi, selon que c'est nécessaire ou pas, l'élément Z ou autre. Voilà pourquoi je décharge, tant que possible, une partie de cette gestion-là sur l'appel de Javascript via le CSS. Ca me simplifie bien des choses, à la fois dans le code HTML, et dans le JavaScript lui-même.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Merci pour cette solution alternative KadRik  à vrai dire je ne l'ai pas testé je suis passé à un autre projet. Une petite classe Cursor ou Mouse ça aurait été pratique quand même : )