Я пытаюсь перетащить изображение вокруг элемента canvas
. Хотя я затягивал работу, он не работает, как мне хотелось бы.Перетащите изображение на холсте
В общем случае изображение всегда больше, чем элемент холста, но левая сторона изображения внутри холста не может двигаться дальше, чем левая сторона холста, а также правой стороне не разрешается идти " более правым ", чем правая сторона холста. В принципе, изображение ограничено, чтобы не показывать пусто холст.
Проблема с перетаскиванием заключается в том, что всякий раз, когда я начинаю перетаскивать изображение, «появляется», чтобы действовать так, как если бы оно было 0,0, из местоположения мыши, тогда как я действительно хочу переместить изображение из текущей позиции.
document.onmousemove = function(e) {
if(mouseIsDown) {
var mouseCoords = getMouseCoords(e);
offset_x += ((mouseCoords.x - canvas.offsetLeft) - myNewX);
offset_y += ((mouseCoords.y - canvas.offsetTop) - myNewY);
draw(offset_x, offset_y);
// offset_x = ((mouseCoords.x - canvas.offsetLeft) - myNewX);
// offset_y = ((mouseCoords.y - canvas.offsetTop) - myNewY);
// offset_x = (mouseCoords.x - canvas.offsetLeft) - myNewX;
// offset_y = (mouseCoords.y - canvas.offsetTop) - myNewY;
offset_x = prevX;
offset_y = prevY;
}
/*if(mouseIsDown) {
var mouseCoords = getMouseCoords(e);
var tX = (mouseCoords.x - canvas.offsetLeft);
var tY = (mouseCoords.y - canvas.offsetTop);
var deltaX = tX - prevX;
var deltaY = tY - prevY;
x += deltaX;
y += deltaY;
prevX = x;
prevY = y;
draw(x, y);
}*/
};
Это то, что у меня есть сейчас, где я получаю эффект параллелепипеда.
Если я копировать вставить это в jsfiddle это будет воссоздать поведение? Если нет, plz поместите полный код на jsfiddle.net или, по крайней мере, минимальный пример. – puk
Почему у вас есть код, который закомментирован? Вы должны удалить это, чтобы никого не путать. Кроме того, что такое myNewX/myNewY? – puk