Search code examples
javascriptjquerymouseeventdirection

detect mouse direction


I am trying this code to detect if the mouse direction is going up or down:

<html>  
    <head></head>
    <body>
        <div style="width: 500px; height: 500px; background: red;"></div>
    </body>
</html>

var mY = 0;
$('body').mousemove(function(e) {
    mY = e.pageY;
    if (e.pageY < mY) {
        console.log('From Bottom');
        return;

    } else {
        console.log('From Top');
    }

});

However this code doesn't work was i expect. Console log always show "from top"

Any idea ?

demo


Solution

  • var mY = 0;
    $('body').mousemove(function(e) {
    
        // moving upward
        if (e.pageY < mY) {
            console.log('From Bottom');
    
        // moving downward
        } else {
            console.log('From Top');
        }
    
        // set new mY after doing test above
        mY = e.pageY;
    
    });