Ich versuche eine Leinwand zu erstellen, die ich mit der Mausbewegung ziehen kann. Und ich mache etwas falsches, das ich nicht verstehen kann, denn Ursache scheint zuerst zu funktionieren und dann gibt es einen inkrementellen Fehler, der die Leinwand zu schnell bewegt.Leinwand ziehen auf Mausbewegung
den folgenden Code Unter Berücksichtigung
window.onload = function() {
var canvas = document.getElementById("canvas");
var context = canvas.getContext('2d');
function draw() {
context.fillRect(25, 25, 100, 100);
}
function clear() {
context.clearRect(0, 0, canvas.width, canvas.height);
}
var drag = false;
var dragStart;
var dragEnd;
draw()
canvas.addEventListener('mousedown', function(event) {
dragStart = {
x: event.pageX - canvas.offsetLeft,
y: event.pageY - canvas.offsetTop
}
drag = true;
})
canvas.addEventListener('mousemove', function(event) {
if (drag) {
dragEnd = {
x: event.pageX - canvas.offsetLeft,
y: event.pageY - canvas.offsetTop
}
context.translate(dragEnd.x - dragStart.x, dragEnd.y - dragStart.y);
clear()
draw()
}
})
}
anschauliches Beispiel auf Plunker https://plnkr.co/edit/j8QCxwDzXJZN2DKszKwm.
Kann mir jemand helfen zu verstehen, welches Stück ich vermisse?
Sie sind völlig richtig, diesen Punkt völlig verpasst. –