Ich versuche, über ein Canvas zu zeichnen, indem ich mit der Maus klicke und ziehe. Mein Problem ist, dass die Linie abgesehen davon, dass sie sehr schlechte Qualität hat (ich möchte einen deutlicheren Rand), nur die Mausposition respektiert, wenn diese bei 0,0 liegt. Wenn ich die Maus in die untere Ecke bewege, vergrößert die Linie ihren Abstand zu ihr genauso stark, wie wenn ich mich in der Mitte des Canvas befände, dann wäre die Linie bereits außerhalb.
Mein Code ist hier: http://jsfiddle.net/ajTkP/12/
Ich werde ihn auch hier posten:
var MDown = false;
var Color = 'blau';
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;
}
Vielen Dank für deine Hilfe!