IE中的鼠标位置

时间:2015-05-20 10:28:58

标签: javascript internet-explorer events position mouse

var mousemove = function(event) {
    var xpos = event.x || event.clientX;

    console.log(xpos);
}

window.addEventListener('mousemove', mousemove);

我有以下代码在Chrome和Firefox上运行得很漂亮,但通常在IE上没有。 IE似乎是报告鼠标位置相对于它正在盘旋的当前元素,或者焦点在某处被切换而且它变得混乱,而不是事件所绑定的窗口。

该代码用于画布外导航系统,我正在计算鼠标是否小于屏幕左侧5%(导航所在的位置)。

任何关于让它发挥得很好的想法都会很棒。

3 个答案:

答案 0 :(得分:0)

感谢Tero提供的资源并帮助我解决了这个问题,请在下面找到修改后的代码。

var mousemove = function(event) {
    var xpos = event.screenX;

    console.log(xpos);
}

window.addEventListener('mousemove', mousemove);

答案 1 :(得分:0)

有很多方法可以做到这一点。 一种方法是使用jQuery。

$(window).mousemove(function(event){console.log(event.clientX);});

答案 2 :(得分:0)

此函数返回相对于视口或相对于页面的鼠标位置。

    var getMousePosition = function(e, relativeToViewport) {
        var x = relativeToViewport ? e.clientX : e.pageX || e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        var y = relativeToViewport ? e.clientY : e.pageY || e.clientY + document.body.scrollTop + document.documentElement.scrollTop;

        return {
            x: x,
            y: y
        };
    };