-3

我想通过 jquery 中的鼠标移动事件获取翻译 x 和翻译 y 值。

当鼠标按下页面中的特定点并移动光标时,我需要找到翻译值它从旧点移动到新点的距离。再次移动意味着需要计算它从前一个旧点移动到新点的距离。

这意味着需要计算 translateX 和 translateY。但是 e 包含一些 pageX,clientX 之类的东西,jquery 中没有 translateX / translateY ?

谢谢,

湿婆

4

2 回答 2

2
var bMouseDown = false;
var oPreviousCoords = {
    'x': 0,
    'y': 0
}

$(document).on('mousedown', function (oEvent) {
    bMouseDown = true;
    oPreviousCoords = {
        'x': oEvent.pageX,
        'y': oEvent.pageY
    }
});

$(document).on('mouseup', function (oEvent) {
    bMouseDown = false;
});

$(document).on('mousemove', function (oEvent) {
    var oDelta;

    if (!bMouseDown) {
        return;
    }

    oDelta = {
        'x': oPreviousCoords.x - oEvent.pageX,
        'y': oPreviousCoords.y - oEvent.pageY
    }

    oPreviousCoords = {
        'x': oEvent.pageX,
        'y': oEvent.pageY
    }
});
于 2013-05-14T10:19:12.887 回答
0

我认为您需要将当前值存储在几个变量中,然后在下次触发 mousemove 事件时进行比较,如下所示:

var transX = 0;
var transY = 0;
$(document).on('mousemove', function(e){
    if (e.pageX>transX)
    {
        transX = transX-e.pageX;
    }
    else 
    {
        transX = e.pageX-transX;
    }
    //and the same for transY
});

据我所知,javascript 中没有用于 mousemove 事件的 transY 或 transX 属性。

于 2013-05-14T10:19:43.253 回答