【发布时间】:2023-03-28 05:13:01
【问题描述】:
问题
我可以绘制一个矩形,但是当我单击绘制另一个矩形时,第一个矩形消失了。我知道为什么会发生这种情况,但我想做的是能够绘制多个矩形,并且每个矩形在我绘制时都留在画布上。我必须使用多个上下文吗?
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var canvasx = $(canvas).offset().left;
var canvasy = $(canvas).offset().top;
var last_mousex = last_mousey = 0;
var mousex = mousey = 0;
var mousedown = false;
$(canvas).on('mousedown', function(e) {
last_mousex = parseInt(e.clientX-canvasx);
last_mousey = parseInt(e.clientY-canvasy);
mousedown = true;
});
$(canvas).on('mouseup', function(e) {
mousedown = false;
});
$(canvas).on('mousemove', function(e) {
mousex = parseInt(e.clientX-canvasx);
mousey = parseInt(e.clientY-canvasy);
if(mousedown) {
ctx.clearRect(0,0,canvas.width,canvas.height); //clear canvas
ctx.beginPath();
var width = mousex-last_mousex;
var height = mousey-last_mousey;
ctx.rect(last_mousex,last_mousey,width,height);
ctx.strokeStyle = 'black';
ctx.lineWidth = 10;
ctx.stroke();
}
这里是 jsfiddle 的链接
【问题讨论】:
标签: html html5-canvas