我在这里对如何与画布中的图像进行交互有点困惑。鼠标在画布上的位置
我的图像加载,但我希望能够点击给定的图像,并找出鼠标点击了哪个图像。
但是图像可以被偏移,这使得事情更加混乱,所以我想知道是否有某种数学方法来计算鼠标点击画布时的结果?
我在这里对如何与画布中的图像进行交互有点困惑。鼠标在画布上的位置
我的图像加载,但我希望能够点击给定的图像,并找出鼠标点击了哪个图像。
但是图像可以被偏移,这使得事情更加混乱,所以我想知道是否有某种数学方法来计算鼠标点击画布时的结果?
没试过在画布上,但也许它可以帮助(部分为jQuery的),基地依托DOM功能elementFromPoint():
getElemFromPos = function(x,y,def)
{
var f = 'elementFromPoint',
x=parseInt(x),y=parseInt(y),d=$j(document);
if(!d[0][f] || isNaN(x) || isNaN(y)) return def;
var w=$(window),bRel=0;
if(!d[0].__ajqefpc)
{
var sl=d.scrollTop();
if(sl >0)
{ bRel = (d[0][f](0, sl + w.height() -1) == null); }
else if((sl = d.scrollLeft())>0)
{ bIsRel = (d[0][f](sl + w.width() -1, 0) == null); }
d[0].__ajqefpc=(sl>0);
}
if(!bRel)
{
x += d.scrollLeft();
y += d.scrollTop();
}
var r = d[0][f](x,y);
return (r && r!=null)?r:false;
};
啊,很高兴看到它工作,谢谢。 – Codebeat 2012-02-29 00:56:38
由于图像基本上都是矩形,[这个答案](HTTP: //stackoverflow.com/questions/6452791/interacting-with-canvas-rectangle/6452867#6452867)可能会有所帮助。 – pimvdb 2012-02-28 23:42:16
可能的重复http://stackoverflow.com/questions/5690943/calculate-the-xy-position-of-a-canvas-point – Soren 2012-02-28 23:43:21
http://stackoverflow.com/questions/5085689/tracking-mouse-position-in -canvas – Soren 2012-02-28 23:44:40