Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取画布特定部分的单击值_Javascript_Canvas_Html5 Canvas - Fatal编程技术网

Javascript 如何获取画布特定部分的单击值

Javascript 如何获取画布特定部分的单击值,javascript,canvas,html5-canvas,Javascript,Canvas,Html5 Canvas,我想获得canvas元素的clicked部分的值。画布包含多个元素,如下图所示。 我已尝试使用addEventListener的click事件,但无法获取值。下面我分享了代码以供参考 canvas.addEventListener('click',function(evt){ console.log(evt); }); 您应该有每个流程图的位置,当用户单击时,您应该使用流程图位置计算画布位置。这将满足您的要求。 var elem=document.getEleme

我想获得canvas元素的clicked部分的值。画布包含多个元素,如下图所示。

我已尝试使用addEventListener的click事件,但无法获取值。下面我分享了代码以供参考

    canvas.addEventListener('click',function(evt){
       console.log(evt);

});

您应该有每个流程图的位置,当用户单击时,您应该使用流程图位置计算画布位置。这将满足您的要求。

var elem=document.getElementById('myCanvas'),
elemLeft=elem.offsetLeft,
elemTop=elem.offsetTop,
context=elem.getContext('2d'),
元素=[];
//为“单击”事件添加事件侦听器。
元素addEventListener('click',函数(事件){
//var leftWidth=$(“#leftPane”).css(“宽度”)
//var x=event.pageX-(elemLeft+parseInt(leftWidth)+220),
//y=event.pageY-(elemTop+15);
var x=event.pageX-elemLeft,
y=event.pageY-elemTop;
elements.forEach(函数(元素){
if(y>element.top&&yelement.left&&x对于(i=1;i您应该拥有每个流程图的位置,当用户单击时,您应该使用流程图位置计算画布位置。这将满足您的要求。

var elem=document.getElementById('myCanvas'),
elemLeft=elem.offsetLeft,
elemTop=elem.offsetTop,
context=elem.getContext('2d'),
元素=[];
//为“单击”事件添加事件侦听器。
元素addEventListener('click',函数(事件){
//var leftWidth=$(“#leftPane”).css(“宽度”)
//var x=event.pageX-(elemLeft+parseInt(leftWidth)+220),
//y=event.pageY-(elemTop+15);
var x=event.pageX-elemLeft,
y=event.pageY-elemTop;
elements.forEach(函数(元素){
if(y>element.top&&yelement.left&&x对于(i=1;i请参阅此代码段,它定义了您是否单击了画布中的矩形。
var startRectPoint={
x:10,
y:10
};
变量endRectPoint={
x:100,
y:50
};
var canvas=document.getElementById(“myCanvas”);
var ctx=canvas.getContext(“2d”);
fillRect(startRectPoint.x,startRectPoint.y,endRectPoint.x,endRectPoint.y);
功能鼠标向下(e){
变量x,y;
x=e.clientX-canvas.offsetLeft-pageXOffset;
y=e.clientY-canvas.offsetTop-pageYOffset;
var minX=Math.min(startRectPoint.x,endRectPoint.x);
var maxX=Math.max(startRectPoint.x,endRectPoint.x);
var minY=Math.min(startRectPoint.y,endRectPoint.y);
var maxY=Math.max(startRectPoint.y,endRectPoint.y);
如果(x>minX&&xminY&&y
画布{
边框:1px实心;
}

请查看此代码段,它定义了您是否单击了画布中的矩形。
var startRectPoint={
x:10,
y:10
};
变量endRectPoint={
x:100,
y:50
};
var canvas=document.getElementById(“myCanvas”);
var ctx=canvas.getContext(“2d”);
fillRect(startRectPoint.x,startRectPoint.y,endRectPoint.x,endRectPoint.y);
功能鼠标向下(e){
变量x,y;
x=e.clientX-canvas.offsetLeft-pageXOffset;
y=e.clientY-canvas.offsetTop-pageYOffset;
var minX=Math.min(startRectPoint.x,endRectPoint.x);
var maxX=Math.max(startRectPoint.x,endRectPoint.x);
var minY=Math.min(startRectPoint.y,endRectPoint.y);
var maxY=Math.max(startRectPoint.y,endRectPoint.y);
如果(x>minX&&xminY&&y
画布{
边框:1px实心;
}

我无法控制元素。我不确定如何获取元素。我正在执行此图表,无法控制元素。如果没有位置,我们无法在画布中播放。因为画布是白色的,如果有位置,我们可以使用画布播放任何内容。请重新检查我之前的评论。我已附上o东北链路reference@PrasannaBrabourame我想当你在画布上创建一个新对象时,你会给你的对象一个随机位置。例如,这个位置作为对象的x和y成为你对象的一部分,你可以得到这个位置。请用一个工作代码示例编辑你的问题。我无法控制元素。我不确定如何获取元素..我正在实现此图表,我无法控制元素。如果没有位置,我们无法在画布中播放。因为画布是白色的,如果我们有位置,我们可以使用画布播放任何内容。请重新检查我之前的评论。我已附加了一个链接以供参考reference@PrasannaBrabourame我想当你在画布上吃一个新对象你给你的对象一个随机位置。例如,这个位置作为对象的x和y成为你对象的一部分,你可以得到这个位置。请用一个工作代码示例编辑你的问题。如果我们不知道起始点和结束点m