Bonjour à tous,
J'ai un canvas à l'intérieur duquel je présente un graphique sous forme d'histogramme. Toutefois je peux déplacer chacune des barres de l'histogramme en en sélectionnant le sommet. Pour cela, je récupère les coordonnées du clic, je regarde dans quelle zone il est effectué (en clair, je divise les coordonnées relatives du clic par l'espace pris par une barre afin de n'en sélectionner qu'une à la fois), et je regarde si la distance par rapport au sommet de la barre est suffisamment petite pour qu'on la considère sélectionnée. Après quoi on peut la descendre, monter, etc.
Tout ceci fonctionne très bien, même sur mon iPhone, mais j'ai cependant un gros problème sur PC lorsque j'effectue un zoom : le navigateur va sélectionner une des barres située sur la gauche de celle que je souhaite saisir, et le problème s'accentue avec le niveau de zoom. A l'inverse, quand je dézoome et que la page est plus petite que celle d'origine, le problème se décale vers la droite. A noter que selon les navigateurs (listés plus bas), la "distance d'erreur" peut varier fortement, sachant que sous FF elle demeure moins importante que sous les autres.
Pour ma part, je penche pour une défaillance dans la gestion du canvas, et je ne vois pas où j'aurais pu me planter dans le code JS.
Liste des navigateurs : FF 3.6.2, FF 4.0 beta 11, FF 4 RC1, Opera 11.01, Chrome 10 et Safari 4.0.3 (mais pas sous IE9).
Merci d'avance pour vos réponse.
Partager