当我调用一个函数时,我从全局函数中得到:window.event.clientX和window.event.clientY,粘贴。
我试图粘贴在坐标,但他们是一些信息,我正在努力解决。
我正要取
window_data: {top,left}
和减:
stage_div_offset: {top,left}
来获得实际的偏移量,但这似乎也有点偏离。在X和Y方向上大约40像素。我猜这可能是由于margin或padding之类的原因
我真正好奇的是,是否有办法获得鼠标的X
和Y
参考div或其他htmlElement
?
我不确定是否有一个函数,我可以在选择器中传递,或者如果使用像jquery这样的东西,实际上会有一个函数或选择器的东西叫做:鼠标。
我确实觉得下面这个话题是相关的,尽管不确定它是否使我的话题成为一个话题:
jQuery获取鼠标在元素中的位置
Edit:原来我在做下面的代码:
var stage = $("#stage").offset(),
results = {
left: window.event.clientX - stage.left,
top: window.event.clientY - stage.top
};
编辑2:当前的答案似乎都不起作用,部分原因是我的浏览器不识别mouseEvent,所以它不能得到屏幕的位置。
我写了下面的代码来尝试获取鼠标定位
var MouseLocation = {};
MouseLocation.Left = 0;
MouseLocation.Top = 0;
MouseLocation._event;
MouseLocation.get_position = function () { return { left: MouseLocation.Left, top: MouseLocation.Top }; }
MouseLocation.attach = function () {
MouseLocation._event = function (e) {
var loc = { left: e.clientX, top: e.clientY }
MouseLocation.Left = loc.left;
MouseLocation.Top = loc.top;
};
$("#stage").on("mousemove", MouseLocation._event);
}
MouseLocation.detach = function () {
$("#stage").off("mousemove", MouseLocation._event);
}
MouseLocation.ping = function () {
MouseLocation.attach();
$("#stage").mousemove();
MouseLocation.detach();
}
这样,在我的事件中,我就可以写入:
MouseLocation.ping ();
MouseLocation.get_position ();$("#stage").on("mousemove")你可以使用position()来:
获取匹配元素集合中第一个元素相对于偏移的父元素的当前坐标
您可以取鼠标的文档坐标并减去元素的坐标:
relX = e.clientX-element.offset().left;
relY = e.clientY-element.offset().top;
http://jsfiddle.net/4scbu/1/offset()的优点是计算中包含了边距和填充。