var canvasOne = document.getElementById("canvasOne");
var ctxOne = canvasOne.getContext("2d");
var canvasTwo = document.getElementById("canvasTwo");
var ctxTwo = canvasTwo.getContext("2d");
var mouseX=0;
var mouseY=0;
var imageX=0;
var imageY=0;
var drag = false;
canvasOne.addEventListener("mousedown", function(){drag=true;}, false);
canvasOne.addEventListener("mouseup", function(){drag=false;}, false);
canvasOne.addEventListener("mousemove", moveImage, false);
var myImage = new Image();
myImage.src = "http://home.niddro.com/HTML5/flxprt/img/logo_orange_small.png";
function moveImage(event) {
if (drag) {
var x = new Number();
var y = new Number();
var canvas = document.getElementById("canvasOne");
if (event.x != undefined && event.y != undefined)
{
x = event.x;
y = event.y;
}
else // Firefox method to get the position
{
x = event.clientX + document.body.scrollLeft +
document.documentElement.scrollLeft;
y = event.clientY + document.body.scrollTop +
document.documentElement.scrollTop;
}
x -= canvas.offsetLeft;
y -= canvas.offsetTop;
var deltaX = mouseX-x;
var deltaY = mouseY-y;
drawImage(imageX-deltaX,imageY-deltaY,ctxOne,canvasOne,myImage);
drawImage(imageX-deltaX,imageY-deltaY,ctxTwo,canvasTwo,myImage);
}
}
drawImage(imageX,imageY,ctxOne,canvasOne,myImage);
drawImage(imageX,imageY,ctxTwo,canvasTwo,myImage);
function drawImage(x,y,ctx,canvas,img) {
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.drawImage(img,x,y);
}
canvas {
border: 1px solid black;
}
<canvas id="canvasOne" width="500" height="300"></canvas><br />
<canvas id="canvasTwo" width="500" height="300"></canvas>
閱讀來自正在移動的物體在x/y屬性,應用(組)它們的第二區上的(複製)對象上。 – K3N 2015-03-03 08:30:49