4

我想获得一个 div 的鼠标坐标,如下所示:

$("#box").mousemove(function(e){
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;

document.getElementById("coords").innerHTML = x + ", " + y; });

但我也希望能够判断光标是向左还是向右移动;我知道我只需要将当前鼠标位置与之前的鼠标位置进行比较,但在这种情况下我不知道该怎么做。

任何帮助表示赞赏。谢谢

4

2 回答 2

14

获取鼠标位置的jquery代码如下

jQuery(document).ready(function(){

   $(document).mousemove(function(e){
      $('#status').html(e.pageX +', '+ e.pageY);
   }); 
})

显然你必须有一个名为“状态”的 div

<div id="status">0, 0</div>

要检查光标是向左移动还是向右移动,您必须存储前一个位置,然后将其与新位置进行比较。

在这里,我给你写了完整的例子:

http://jsfiddle.net/cB9Wq/

_ 编辑:

如果您需要获取 div 内的坐标,您还需要知道 div 的位置:

$(".div_container").mousemove(function(e){
        var relativeXPosition = (e.pageX - this.offsetLeft); //offset -> method allows you to retrieve the current position of an element 'relative' to the document
        var relativeYPosition = (e.pageY - this.offsetTop);
        $("#header").html("<p><strong>X-Position: </strong>"+relativeXPosition+" | <strong>Y-Position: </strong>"+relativeYPosition+"</p>")
    }).mouseout(function(){
        $("#header").html("<p>Move mouse on the below blue div container! :)</p>")
    });

为了检查鼠标是向左还是向右,我使用了这个语法:

xPrev<e.pageX ? $('#lr').html("right") : $('#lr').html("left");
xPrev=e.pageX;

注意:这相当于:

if(xPrev<e.pageX) { 
   $('#lr').html("right"); 
}
else {
   $('#lr').html("left"); 
}
xPrev=e.pageX;

这里有工作示例:http: //jsfiddle.net/cB9Wq/2/

于 2012-12-27T00:08:14.527 回答
1

您可以使用以下解决方案:

var plotSliderLastPostion = 0; //Placed outside the scope of function (fxp like private member)

slider.addEventListener(EVENT.MOUSE_MOVE, function(e){
var relativePlotBoxPositionX = e.clientX - rect.left;
 //CHECK THAT CURSOR IS MOVING RIGHT OR LEFT
                    if(relativePlotBoxPositionX > plotSliderLastPostion) {
                        console.log("right");
                        plotSliderLastPostion = relativePlotBoxPositionX;
                    }
                    else {
                        console.log("left");
                        plotSliderLastPostion = relativePlotBoxPositionX;
                    }
  }, true);
于 2017-03-08T10:03:43.353 回答