Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取相对于某个div的鼠标指针坐标_Javascript_Jquery_Html - Fatal编程技术网

Javascript 获取相对于某个div的鼠标指针坐标

Javascript 获取相对于某个div的鼠标指针坐标,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试获取mousedown和mouseup事件上的鼠标指针位置。有一个名为test的div,我想知道mousedown和mouseup在div区域内发生时的位置。我把div作为我的曲面,所以mousedown和mouseup的位置应该与div相关。我在div里面有一个pdf,所以我得到的坐标将帮助我突出显示pdf 我试过这个,但效果不好 function getPosition(element) { var xPosition = 0; var yPosition = 0;

我正在尝试获取mousedownmouseup事件上的鼠标指针位置。有一个名为test的div,我想知道mousedown和mouseup在div区域内发生时的位置。我把div作为我的曲面,所以mousedown和mouseup的位置应该与div相关。我在div里面有一个pdf,所以我得到的坐标将帮助我突出显示pdf

我试过这个,但效果不好

function getPosition(element) {
    var xPosition = 0;
    var yPosition = 0;
    while (element) {
        xPosition += (element.offsetLeft - element.scrollLeft + element.clientLeft);
        yPosition += (element.offsetTop - element.scrollTop + element.clientTop);
        element = element.offsetParent;
    }
    return { x: xPosition, y: yPosition };
}
$("#test").mousedown(function(e){
  var parentPosition = getPosition(e.currentTarget);
  startX = e.clientX - parentPosition.x;
  startY = (e.clientY - parentPosition.y)*2.5;
});
 $("#test").mouseup(function(e){
  var parentPosition = getPosition(e.currentTarget);
  endX = e.clientX - parentPosition.x;
  endY=   (e.clientY - parentPosition.y)*2.5;
});

鼠标相对于div的坐标存储在事件对象的
offsetX
offsetY
属性中

$("#someDiv").click(function(e){
   var x = e.offsetX;
   var y = e.offsetY;
});
因此,如果您有一个宽度为100、高度为50的div,并在div的正中心单击,则

x=50,y=25


getPosition的代码?您使用过位置或偏移吗?这对您没有帮助吗?相对于div,你的意思是如果你点击div的左上角,你会得到x=0,y=0,如果你点击右下角,你会得到x=div-width,y=div-heights我想要的mouseup和mousedown。对这两个应用了ur代码,但在mousedown中,它给出了未定义的。@Dhwani,对任何鼠标事件都是相同的。看我刚才添加的演示我想要开始和结束的X&Y。然后将它们保存在mousedown和mouseup callbacks中。这个解决方案使我免于完全发疯。非常感谢。