javascript - 获取相对于某些 div 的鼠标指针坐标

标签 javascript jquery html

我试图在 mousedownmouseup 事件中获取鼠标指针位置。有一个名为 test 的 div,我想在 div 区域内发生 mousedown 和 mouseup 时获得位置。我将 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的坐标保存在事件对象的offsetXoffsetY属性中

$("#someDiv").click(function(e){
   var x = e.offsetX;
   var y = e.offsetY;
});

因此,如果您有一个宽度为 100 且高度为 50 的 div,然后恰好在 div 的中心单击

x = 50, y = 25

JSFiddle Demo

关于javascript - 获取相对于某些 div 的鼠标指针坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24444961/

相关文章:

javascript - 即使在获取响应后页面仍会继续加载

javascript - 嵌入式 JavaScript 不起作用?

android - 设置方向肖像phonegap android

javascript - 不变不保持不变?

JavaScript : Split string using function and returning it

javascript - Google Chrome 的 "New Tab"iframe 是如何工作的?

javascript - 调用 jQuery.post 回调函数的上下文是什么?

jquery - 寻找用于 HTML/JQuery 的可拖动复选框列表控件

html - 如何使我的两个并排 div 具有相同的高度?

javascript - 如何将 Array.prototype.map() 与 then() 一起用于 connection.end()