【发布时间】:2011-12-30 23:34:25
【问题描述】:
在我正在开发的应用程序中,应该可以打开多个 div 框并在每个框上进行绘制(如 MS 油漆灯)。
我已成功打开一个盒子并在其上绘图,但是当我从画布“id”更改为画布“类”(以便能够打开多个盒子并在每个盒子上绘画)时,它停止工作。现在,当我尝试绘画时,什么也没有发生。我做错了什么?
var color = "red";
var shape = "square";
var size = 10;
var theWindow = $('.window').last();
var bottomWindow = $('.windowBottom').last();
var letsdraw = false;
var theCanvas = $('.paint').last();
var ctx = theCanvas.getContext('2d');
ctx.strokeStyle = 'red';
theCanvas.width = 430;
theCanvas.height = 317;
var canvasOffset = $(theCanvas).offset();
$(theCanvas).mousemove(function(e) {
if (letsdraw === true) {
ctx.lineTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
ctx.stroke();
}
});
$(theCanvas).mousedown(function(e) {
letsdraw = true;
ctx.strokeStyle = color;
ctx.lineWidth = size;
ctx.lineCap = 'round';
ctx.beginPath();
ctx.moveTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
});
$(window).mouseup(function() {
letsdraw = false;
});
【问题讨论】:
-
其实大部分的html都是通过DOM动态创建的,代码比较多。我正在谈论的 div 框是一个 div(类:窗口),位于一个 topdiv 和一个 bottomdiv 内。画布放在中间。