我在画布上有一张图片,我想在上面画半透明的矩形。我通过用一个手指拖动和放下来逐步地绘制它们。
目前我的代码看起来像这样:
...
function handleTouch(event) {
if (event.targetTouches.length === 1) {
touch = event.targetTouches[0];
if (event.type == 'touchmove') {
if (drag) {
rect.w = touch.pageX - rect.startX;
rect.h = touch.pageY - rect.startY ;
draw();
}
} else {
rect.startX = touch.pageX;
rect.startY = touch.pageY;
drag = true;
}
}
}
function handleEnd(event) {
drag = false;
}
function draw() {
drawImageOnCanvas();
ctx.strokeStyle = "green";
ctx.strokeRect(rect.startX, rect.startY, rect.w, rect.h);
ctx.fillStyle = 'rgba(0, 100, 255, 0.1)';
ctx.fillRect(rect.startX, rect.startY, rect.w, rect.h);
}
function drawImageOnCanvas() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(imgObj, 0, 0);
}
目前它一次只能处理一个矩形,看起来很符合我的要求,但是我想要更多。我该如何处理?
clearRect
如果它是半透明的。你可以通过strokeRect
和fillRect
另一个矩形而无需使用clearRect
. 你能详细说明一下你的具体用例并可能发布一个 JSFiddle 吗? - Sebastian Simon