Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get mouse position on scroll

how can i get the mouse position when i scroll down or scroll up

i tried this

$(document).mousemove(function(event) {
    captureMousePosition(event);
}).scroll(function(event) {
    xMousePos = event.pageX + $(document).scrollLeft();
    yMousePos = event.pageY + $(document).scrollTop();
    window.status = "x = " + xMousePos + " y = " + yMousePos;
});

function captureMousePosition(event){
    xMousePos = event.pageX;
    yMousePos = event.pageY;
    window.status = "x = " + xMousePos + " y = " + yMousePos;
}

but didnt worked i want the exact position of mouse relative to the top of page not in respect to window(frame)

like image 939
Varun Avatar asked Jun 29 '11 10:06

Varun


1 Answers

we cannot get mouse current position on scroll we can just get how much it scrolled relative to last position so changed it to :

var xMousePos = 0;
var yMousePos = 0;
var lastScrolledLeft = 0;
var lastScrolledTop = 0;

$(document).mousemove(function(event) {
    captureMousePosition(event);
})  

    $(window).scroll(function(event) {
        if(lastScrolledLeft != $(document).scrollLeft()){
            xMousePos -= lastScrolledLeft;
            lastScrolledLeft = $(document).scrollLeft();
            xMousePos += lastScrolledLeft;
        }
        if(lastScrolledTop != $(document).scrollTop()){
            yMousePos -= lastScrolledTop;
            lastScrolledTop = $(document).scrollTop();
            yMousePos += lastScrolledTop;
        }
        window.status = "x = " + xMousePos + " y = " + yMousePos;
    });
function captureMousePosition(event){
    xMousePos = event.pageX;
    yMousePos = event.pageY;
    window.status = "x = " + xMousePos + " y = " + yMousePos;
}

it worked and is working on multi browsers....

anyways thanks all :)

like image 189
Varun Avatar answered Sep 21 '22 19:09

Varun