有没有办法检测鼠标光标来自 div 的哪一侧?
目前我正在使用这种方法:
jQuery(this).bind('mousemove',function(e){
offset_pos_x = parseInt(e.offsetX);
offset_pos_y = parseInt(e.offsetY);
...
然后我寻找鼠标在 div 内的距离,朝哪个方向。
问题是,这种方法有点问题,因为我需要所有 4 个面,而不仅仅是两个,所以我必须检查 offsetX 和 offsetY。
如果我在 div 内移动鼠标,例如 X:+15,Y:-3(以像素为单位),我知道鼠标来自左侧,因为鼠标在 x 轴上移动了 15px,但在 y 轴上只移动了 -3px . 关于这个问题的问题是,当 X 和 Y 几乎相同并且我不知道鼠标是来自左侧还是顶部时(例如)。
此外,根据我的另一个问题(jQuery:mouseenter/mousemove/mouseover 无法识别小 div 和快速鼠标移动),由于浏览器/操作系统的限制,事件不会在 div 一侧的第一个像素上触发。因此,我的“entered_at”坐标不是那么准确 - 例如:
如果我在 div 内(从左至右)非常快地移动鼠标光标,则“entered_at”坐标位于 x:17,y:76 处。现在,如果我在停止鼠标后将鼠标向左移动,例如到 x:6,y:76,则起点和 offsetX 之间的差异为负,因此会触发“光标来自右侧”功能...
是否有另一种方法来检测鼠标光标的来源?
问候,帕特里克