JS 实时获取鼠标所在坐标

背景

有时我们希望实时获取鼠标所在的位置,用来判断鼠标是不是在一个dom元素的上、下、左、右。
那么如何实现获取鼠标所在位置呢 ?

代码示例

function getMousePos(event) {
    var e = event || window.event;
    var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
    var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
    var x = e.pageX || e.clientX + scrollX;
    var y = e.pageY || e.clientY + scrollY;
    return { 'x': x, 'y': y };
}

接下来呢,再做一点扩展,沿着上述问题的引入,假如我需要判断鼠标是否在dom元素#target的上方或者右方呢?

 var target_position = $('#target').offset();
 var top = target_position.top;//计算target的top
 var left = target_position.left;//计算target的left
 var left_side = left + $('#target').width();//计算target的宽度,这是因为我要判断的鼠标位置可能位于target的右方,如果是左方,则无需left_side,left就好
 var hand_position = getMousePos(e);
 var y = hand_position.y;
 var x = hand_position.x;
 if(top > y || left_side < x){
	 //此时鼠标位于target的上方或右方
 }

版权声明:本文为viciousDear原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。