【发布时间】:2020-02-27 22:58:00
【问题描述】:
我正在尝试使用 HTML 5 Canvas 进行类似 Paint 的操作。我必须做两种类型的矩形:填充和不填充。我是这样做的:
function rectangle(state = false) {
var first = [];
var second = [];
var click = 0;
canvas.mousedown(function(e) {
if (status == "rectangle") {
if (click == 0) {
first[0] = e.offsetX;
first[1] = e.offsetY;
click++;
} else {
second[0] = e.offsetX;
second[1] = e.offsetY;
if (state) {
ctx.fillRect(
first[0],
first[1],
second[0] - first[0],
second[1] - first[1]
);
} else {
ctx = canvas[0].getContext("2d");
ctx.strokeRect(
first[0],
first[1],
second[0] - first[0],
second[1] - first[1]
);
}
click = 0;
}
}
});
}
这是我的电话
//rectangle ;)
$("#fill").click(function() {
$("#alert").text("fill Rectangle");
status = "rectangle";
rectangle(true);
});
$("#contour").click(function() {
$("#alert").text("Rectangle");
status = "rectangle";
rectangle();
});
我有 2 个按钮用于选择用户想要的矩形类型。
当我点击filled 时,我可以像我想要的那样绘制我的矩形,但是当我切换到not filled 时,它仍然通过填充矩形来绘制。要绘制一个未填充的矩形,我必须按 F5 并首先在 not filled 中单击。
【问题讨论】:
-
您省略了代码的相关部分(
state是如何设置的)。 -
我刚刚添加了我的通话功能;)
标签: javascript jquery canvas html5-canvas