可以使用 Javascript 获取当前的鼠标坐标吗?

Possible to get the current mouse coords with Javascript?

提问人:Andrew G. Johnson 提问时间:3/3/2009 更新时间:6/10/2016 访问量:12334

问:

可以使用 Javascript 获取当前的鼠标坐标吗?

JavaScript的

评论


答:

0赞 schar 3/3/2009 #1

这是可以做到的。刚刚用谷歌搜索并得到了以下代码

if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
}
0赞 Canavar 3/3/2009 #2

您可以像这样在浏览器中获取鼠标坐标。

6赞 Martin Janiczek 3/3/2009 #3

来源: http://javascript.internet.com/page-details/mouse-coordinates.html

<form name="Show">
    X
    <input type="text" name="MouseX" value="0" size="4">
    <br>
    Y
    <input type="text" name="MouseY" value="0" size="4">
    <br>
</form>

<script language="JavaScript">
    var IE = document.all ? true : false;
    if (!IE) {
        document.captureEvents(Event.MOUSEMOVE)
    }
    document.onmousemove = getMouseXY;
    var tempX = 0;
    var tempY = 0;
    function getMouseXY(e) {
        if (IE) {// grab the x-y pos.s if browser is IE
            tempX = e.clientX + document.body.scrollLeft;
            tempY = e.clientY + document.body.scrollTop;
        } else {// grab the x-y pos.s if browser is NS
            tempX = e.pageX;
            tempY = e.pageY;
        }
        if (tempX < 0) {
            tempX = 0;
        }
        if (tempY < 0) {
            tempY = 0;
        }
        document.Show.MouseX.value = tempX;
        document.Show.MouseY.value = tempY;
        return true;
    }
</script>
1赞 user46665 3/3/2009 #4

这是一个带有演示的紧凑函数,它返回坐标为 .x 和 .y 的值:

function mouseCoords(ev){
    // from http://www.webreference.com/programming/javascript/mk/column2/
    if(ev.pageX || ev.pageY){
        return {x:ev.pageX, y:ev.pageY};
    }
    return {
        x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
        y:ev.clientY + document.body.scrollTop  - document.body.clientTop
    };
}

(我发现 quirksmode 是 JavaScript 智慧的一个很好的资源。以下是该函数的一些背景,以防您想更深入地挖掘。