我的简单 HTML 页面中有一个画布元素,它使用context.fillRect()
方法绘制的矩形很少。我需要与这些绘制的矩形进行交互。
我该怎么做?如何将 onclick 或 onmouseover 与这些矩形绑定?
我的简单 HTML 页面中有一个画布元素,它使用context.fillRect()
方法绘制的矩形很少。我需要与这些绘制的矩形进行交互。
我该怎么做?如何将 onclick 或 onmouseover 与这些矩形绑定?
您需要跟踪坐标并检查鼠标是否位于如下矩形之一中:http: //jsfiddle.net/eGjak/13/。
显然,click
您也可以使用mouseover
.
var ctx = $('#cv').get(0).getContext('2d');
var rects = [[0, 0, 100, 100], [0, 150, 50, 100]]; // [x, y, width, height]
for(var i=0;i<rects.length;i++) {
ctx.fillRect(rects[i][0], // fill at (x, y) with (width, height)
rects[i][1],
rects[i][2],
rects[i][3]);
}
$('#cv').click(function(e) {
var x = e.offsetX,
y = e.offsetY;
for(var i=0;i<rects.length;i++) { // check whether:
if(x > rects[i][0] // mouse x between x and x + width
&& x < rects[i][0] + rects[i][2]
&& y > rects[i][1] // mouse y between y and y + height
&& y < rects[i][1] + rects[i][3]) {
alert('Rectangle ' + i + ' clicked');
}
}
});
我已经写了一些关于在 Canvas 上制作和移动可选形状的教程,这些教程应该可以让你很好地理解你需要什么。
简短的回答是,您只需要跟踪您想要选择的所有内容。