我正在做一个 HTML5 画布画家,具有绘制、放置矩形、圆形和不同颜色选项的选项。我的问题是我最初有一个默认值为“铅笔”的 var 工具,我想通过单击将此变量更改为“矩形”(还没有从圆圈开始,因为我想先完成这项工作)在相应的 div 上,这样我就可以有一个用于绘图、矩形或圆形的 if 语句。但这不起作用,我选择了变量,因为我在 onclick 函数中放置了一个警报。之后我尝试使用布尔变量(pencil = true,rect = false,本来是一个“状态”),但这也不起作用。我确实已经写下了 if 语句,所以我现在的结论是,我以某种方式将布尔值作为常量(因为铅笔 = true 是我的 var 的默认状态),这似乎不太可能。更合乎逻辑的解释是我没有通过 div-click 正确更改变量的值。
这是我的代码的一部分:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var color = "black";
var drawing = false;
var pencil = true;
var rect = false;
//Pencil
var pencilDiv = document.getElementById("pencil");
pencilDiv.onclick = function () {
pencil = true;
rect = false;
}
//Rect
var rectDiv = document.getElementById("rect");
rectDiv.onclick = function () {
rect = true;
pencil = false;
}
if (pencil) {
canvas.onmousedown = function (event) {
drawing = true;
}
canvas.onmousemove = function (event) {
if (drawing) {
draw()
}
}
canvas.onmouseup = function (event) {
drawing = false;
}
}
if (rect) {
canvas.onmousedown = function (event) {
rect()
}
}
draw 和 rect 函数都有效。我也试过 if(pencil == true && rect == false),也没有用。
抱歉,如果答案很明显而我只是没有看到,这是我第二次使用 Javascript 进行编程。
提前致谢!