当我调用函数时,我从全局函数中获取:window.event.clientX和window.event.clientY粘贴。

我正在尝试粘贴坐标,但由于我正在解决的一些信息,它们已关闭。

我正要服用:

window_data:  {top,left}


减去:

stage_div_offset:  {top,left}


以获得实际的偏移量,但似乎也有些偏离。在X和Y方向上大约40个像素。我认为这是由于空白或填充或类似的原因。

我真正好奇的是,有没有一种方法可以使div或其他X引用鼠标的YhtmlElement

我不确定是否存在可以传递给选择器的函数,或者如果使用类似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/

10-09 15:43