Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Possible to get the current mouse coords with Javascript?

Tags:

javascript

Possible to get the current mouse coords with Javascript?

like image 736
Andrew G. Johnson Avatar asked Mar 02 '09 21:03

Andrew G. Johnson


2 Answers

Source: 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>
like image 183
Martin Janiczek Avatar answered Oct 05 '22 19:10

Martin Janiczek


Here is a compact function with a demonstration, it returns value with coordinates in .x and .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
    };
}

(I found quirksmode to be a good resource of JavaScript wisdom. Here is the some background of the function in case you want to dig deeper.)

like image 43
user46665 Avatar answered Oct 05 '22 18:10

user46665