Эта проблема в том, что вы по-прежнему рассматриваете его как один холст.
$('.paint').mousemove(function(e) {
if (letsdraw === true) {
var ctx = this.getContext('2d');
var canvasOffset = $(this).offset();
ctx.lineTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
ctx.stroke();
}
});
Поэтому я удалил theCanvas
и использовал this
для ссылки на холст.Нажмите на демонстрационную ссылку, чтобы увидеть ее в действии:
Демо
Еще некоторые правки с использованием данных attr:
// using data attr to store lets draw per canvas
$(window).mouseup(function() {
$('.paint').each(function () {
$(this).data('letsdraw', false);
});
});
$('.paint').mousemove(function(e) {
if ($(this).data('letsdraw') === true) {
var ctx = this.getContext('2d');
var canvasOffset = $(this).offset();
ctx.lineTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
ctx.stroke();
}
});
Изменение высоты и ширины:
$('.paint').each(function () {
this.width = 430;
this.height = 20
})
Я делаю это только один раз, потому что изменение высоты / ширины холста фактически стирает весь рисунок.