Ein Canvas ist nichts weiter als eine Bitmap. Es wird kein Protokoll geführt, dass ein Rechteck auf dem Canvas gezeichnet wurde, daher müssen Sie, wenn Sie erkennen möchten, dass der Klick innerhalb eines Bereichs stattgefunden hat, auf dem Sie ein Rechteck gezeichnet haben, eine Aufzeichnung der von Ihnen gezeichneten Bereiche führen und diese überprüfen. z.B.:
var rects= [];
function mouseClick(event) {
// Ermitteln Sie die Position des Klicks relativ zum Canvas. Dies ist nicht zuverlässig! Erfordert
// Standardsmodus und dass das Canvas nicht in anderen OffsetParents verschachtelt ist.
// Das zuverlässige Ermitteln seitenbezogener Koordinaten in allen Fällen liegt außerhalb des
// Rahmens dieser Frage...
//
var x= event.clientX-document.documentElement.scrollLeft-canvas.offsetLeft;
var y= event.clientY-document.documentElement.scrollTop-canvas.offsetTop;
// Jedes Rechteck in der Liste der gezeichneten Rechtecke auf Kollision überprüfen
//
for (var i= rects.length; i-->0;) {
var x0= rects[i][0], y0= rects[i][1], x1= rects[i][2], y1= rects[i][3];
if (x0<=x && x
`
Wenn Sie häufig solche Dinge tun, ist es wahrscheinlich ratsam, ein auf Retained-Mode-Zeichnungssystemen wie SVG anstatt auf reinen Bitmap-Canvas basierendes System zu verwenden. In SVG können Sie auf Klickereignisse direkt auf einem Rechteckobjekt hören, das Rechteck verschieben, neu anordnen usw.
`