用鼠标在画布上移动图像

Beo*_*ulf 3 javascript jquery html5 html5-canvas

我有这个画布,我使用2张图片,一张是主图片,第二张图片用作剪贴蒙版.

我需要能够移动主画面并且已经实现了代码,但是当我们点击图片进行拖动时,图像总是呈现初始位置,而且当我们拖动图像时它也不会随着图像一起移动鼠标,有一些增加的延迟.我试图扭转这种局面,但是我对数学提出正确的公式并不是那么好.

这是我用来捕捉鼠标移动的代码:

$(window).mousemove(function(event) {
    if( isDragging == true )
    {
        var cWidth = $("#stcanvas").width();    
        moveXAmount = (event.pageX / $(window).width())*cWidth;    
        moveXAmount = moveXAmount - (cWidth/2);
        var cHeight = $("#stcanvas").height(); 
        moveYAmount = (event.pageY / $(window).height())*cHeight;    
        moveYAmount = moveYAmount - (cHeight/2);
        buildcanvas();
    }
});
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题?

这是一个小提琴:http://jsfiddle.net/rVx5G/10/

aca*_*lon 7

看起来你需要在鼠标移动中处理delta而不是相对于窗口移动.这是一个jsfiddle.变化是:

var prevX = 0;
var prevY = 0;

$(window).mousemove(function(event) {
    if( isDragging == true )
    {
        if( prevX>0 || prevY>0)
        {
            moveXAmount += event.pageX - prevX;
            moveYAmount += event.pageY - prevY;
            buildcanvas();
        }
        prevX = event.pageX;
        prevY = event.pageY;
    }
});
Run Code Online (Sandbox Code Playgroud)

这实现了你想要的吗?