|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : octobre 2003 Messages : 143 ![]() |
Bonjour,
Je suis sous Firefox 3.6.12 sous Linux / Ubuntu 10.10. Sur un canvas HTML 5, les coordonnées du clic souris que je récupère semblent légèrement décalées par rapport au bout de la flèche qui représente le pointeur (le curseur) de ma souris. J'utilise le code ci-dessous qui dessine un point sur un canvas HTML 5 à l'endroit du clic. Le point ne se dessine pas au bout de la flèche mais légèrement en bas à droite sous la flèche. Code :
Ou est-ce autre chose ? Merci d'avance pour votre aide |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 026 ![]() |
clientX/clientY sont les positions de la souris par rapport à la partie visible de la page page (en gros, le premier pixel blanc d'une page de fond blanc.)
Or, là, ton canvas n'est pas tout-à-fait en haut à gauche : d'abord il a une bordure, et puis en général ils ont aussi une marge CSS par défaut, et <body> un padding CSS par défaut. Bref le canvas n'est pas au début de la page au pixel près. Je sais qu'avec firefox, une solution simple est de mettre le <canvas> en position relative, mais en laissant zéro à top et left, ce qui en fait un layer. Du coup on obtient les coordonnées du clic sur le canvas avec event.layerX et event.layerY . Mais je ne sais pas si c'est bien standard. Autre possibilité, plus standard : obtenir d'une part la position du canvas sur la page, et d'autre part la position du clic sur la page avec event.pageX et event.pageY . Faire les maths pour voir où le clic a eu lieu sur le canvas. C'est passablement plus simple de faire ce genre de choses avec jQuery ou autre, je reconnais. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : octobre 2003 Messages : 143 ![]() |
Merci beaucoup thelvin.
Je n'avais pas conscience que la coordonnée du clic était relative à la page dans sa globalité et non juste au canvas. Ça semble assez évident maintenant que vous m'y avez fait penser. J'aurai pu m'en douter... Bref, j'ai donc opté pour la méthode standard et fait quelques additions et soustractions et ça marche nickel. Merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com