Bonjour,
j'ai lu pas mal des sujet du forum concernant les coordonnées de souris mais je n'arrive toujours pas à solutionner mon problème.
Mon but est de récupérer les coordonnées du clic sur une image. Les coordonnées étant relative à l'image et non à la page.
Sous firefox ca semble marcher correctement , en revanche sous IE/Opera ... j'ai pour les coordonnées en Y des valeur trop petite (qui devienne négative si je suis trop sur le bord gauche de mon image. Les coordonnées en X sont quant à elles légèrement décalées.
Pour un clic au même endroit j'obtiens sous FF X:162 Y:163 (bonne valeur): et sous IE X:165 Y:22
Voici ce que j'ai fait
Et l'appel :
Une idée ?
Merci
j'ai lu pas mal des sujet du forum concernant les coordonnées de souris mais je n'arrive toujours pas à solutionner mon problème.
Mon but est de récupérer les coordonnées du clic sur une image. Les coordonnées étant relative à l'image et non à la page.
Sous firefox ca semble marcher correctement , en revanche sous IE/Opera ... j'ai pour les coordonnées en Y des valeur trop petite (qui devienne négative si je suis trop sur le bord gauche de mon image. Les coordonnées en X sont quant à elles légèrement décalées.
Pour un clic au même endroit j'obtiens sous FF X:162 Y:163 (bonne valeur): et sous IE X:165 Y:22
Voici ce que j'ai fait
//Position en X de la souris
function getMouseX(e)
{
if (!e) var e = window.event;
if(window.opera) //OP6
return e.clientX;
else if(document.all) //IE4,IE5,IE6
return document.body.scrollLeft+e.clientX;
else if(document.layers||document.getElementById) //N4,N6,Moz
return e.pageX;
}
//Position en Y de la souris
function getMouseY(e)
{
if (!e) var e = window.event;
if(window.opera) //OP6
return e.clientY;
else if(document.all) //IE4,IE5,IE6
return document.body.scrollTop+e.clientY;
else if(document.layers||document.getElementById) //N4,N6,Moz
return e.pageY;
}
function posObj(obj,e)
{
mouseX = getMouseX(e);
mouseY = getMouseY(e);
var curleft = curtop = 0;
if(obj.offsetParent)
{
curleft= obj.offsetLeft;
curtop = obj.offsetTop;
while(obj = obj.offsetParent)
{
curleft+=obj.offsetLeft;
curtop+=obj.offsetTop;
}
}
// Position du curseur sur la page moins la position de l'image sur la page = position du curseur sur l'image
PosMouseOnPicX = mouseX - curleft;
PosMouseOnPicY = mouseY - curtop;
alert('X:'+PosMouseOnPicX+' Y:'+PosMouseOnPicY)
}
Et l'appel :
<img id="idImage" src="includes/createImage.php?act=1&cam=<?php echo $cam?>" width="384" height="288" onclick="posObj(this,event)" />
Une idée ?
Merci
