与画布矩形交互
Interacting with Canvas Rectangle
我的简单HTML页面中有一个画布元素,它有几个使用context.fillRect()
方法绘制的矩形。我需要与这些绘制的矩形进行交互。
我该怎么做?如何将onclick或onmouseover与这些矩形绑定?
您需要跟踪坐标并检查鼠标是否在如下矩形中:http://jsfiddle.net/eGjak/13/.
显然,您也可以使用mouseover
来代替click
。
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上制作和移动可选形状的教程,这些教程应该能让你很好地了解你需要什么。
简单的答案是,你只需要跟踪你想要选择的所有东西。
相关文章:
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- HTML画布在绘图后立即擦除矩形
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- 画布中绘制的矩形区域的弹出工具提示
- Fabric.js-更改矩形填充
- Javascript没有't更新DOM,直到用户交互
- angularjs路线过渡如何以交互方式设置动画
- 用于编写与我作为客户端查看的网页交互的脚本的术语(如果有的话)是什么
- 鼠标点击HTML5画布绘制矩形
- 如何使所有绘制的(矩形、圆形、直线、多边形)都可拖动?纯JS
- 悬停时以矩形突出显示整个标签区域
- 如何移动矩形“;var canvas1”;在那个代码上
- 交互.js拖动的项目移动到顶部
- 我的svg矩形移动
- 矩形交叉点组合
- 'mousemove'画布中的事件侦听器-指针仅在最后一个矩形中更改
- Jquery keep Alive/任何客户端交互
- 与Javascript的简单画布矩形交互
- 与画布矩形交互