Я пытаюсь рисовать поверх холста, нажимая и перетаскивая мышь. Моя проблема заключается в том, что, кроме того, что линия имеет очень низкое качество (я хочу более выраженную границу), она только уважает положение мыши, когда она равна 0,0. Когда я перемещаю мышь в нижний угол, линия увеличивает его расстояние от него так же, как когда я нахожусь в середине холста, линия уже вышла из него. У меня есть код на: http://jsfiddle.net/ajTkP/12/Рисование в позиции курсора на холсте с помощью JavaScript
Я также разместить его здесь:
var MDown = false;
var Color = 'blue';
var Canvas = document.getElementById('canvas');
var Context = Canvas.getContext('2d');
Canvas.onselectstart = function() { return false; };
Canvas.unselectable = "on";
Canvas.style.MozUserSelect = "none";
Canvas.onmousedown = function(e) {
MDown = true;
Context.strokeStyle = Color;
Context.lineWidth = 3;
Context.lineCap = 'round';
Context.beginPath();
Context.moveTo(e.pageX - Position(Canvas).left, e.pageY - 5);
}
Canvas.onmouseup = function() { MDown = false; };
Canvas.onmousemove = function(e) {
if (MDown) {
Context.lineTo(e.pageX - Position(Canvas).left, e.pageY - 5);
Context.stroke();
}
}
function Position(el) {
var position = {left: 0, top: 0};
if (el) {
if (!isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
position.left += el.offsetLeft;
position.top += el.offsetTop;
}
}
return position;
}
Спасибо за вашу помощь!
Вы спасли жизнь человека. Будьте здоровы. Любые советы, чтобы сделать линию более гладкой? Еще раз спасибо! – ali
FYI, лучше сделать это 'window.onmousemove', чтобы линия не застряла, когда вы выходите из области. Http://jsfiddle.net/DerekL/ajTkP/14/ –