当我调用函数时,我从全局函数中获取:window.event.clientX和window.event.clientY粘贴。
我正在尝试粘贴坐标,但由于我正在解决的一些信息,它们已关闭。
我正要服用:
window_data: {top,left}
减去:
stage_div_offset: {top,left}
以获得实际的偏移量,但似乎也有些偏离。在X和Y方向上大约40个像素。我认为这是由于空白或填充或类似的原因。
我真正好奇的是,有没有一种方法可以使div或其他
X
引用鼠标的Y
和htmlElement
?我不确定是否存在可以传递给选择器的函数,或者如果使用类似jquery的函数,则实际上会有一个函数或用于选择器的东西:mouse。
我确实觉得以下主题很重要,尽管不确定是否会使我成为重复:
jQuery get mouse position within an element
编辑:最初我正在执行以下代码:
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”)
最佳答案
您可以使用postion()来:
获取相对于偏移父级的匹配元素集中第一个元素的当前坐标。
关于javascript - 能否使ClientX和ClientX引用选择器而不是窗口?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23910480/