Position du curseur

Résolu
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 1 mars 2007 à 16:28
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 8 mars 2007 à 23:41
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

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
2 mars 2007 à 00:04
B
onsoir...
Sans événement point de salut...
;0)
3
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
2 mars 2007 à 12:12
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]
3
astuces_jeux Messages postés 731 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 27 mai 2010
1 mars 2007 à 17:40
moi aussi je cherche sa mais je penses que non en js
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 mars 2007 à 11:14
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 />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
2 mars 2007 à 12:18
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 />
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
2 mars 2007 à 16:05
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.
0
KadRik Messages postés 2 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 8 mars 2007
8 mars 2007 à 12:42
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.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2007 à 14:03
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 />
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2007 à 14:10
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 />
0
KadRik Messages postés 2 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 8 mars 2007
8 mars 2007 à 22:25
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.
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 mars 2007 à 23:41
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 : )
0
Rejoignez-nous