小编Pat*_*ick的帖子

jQuery:有没有机会在没有"Offset"方法的情况下检测鼠标从哪一侧进入div?

有没有办法检测鼠标光标来自div的哪一侧?

目前我正在使用这种方法:

jQuery(this).bind('mousemove',function(e){
    offset_pos_x = parseInt(e.offsetX);
    offset_pos_y = parseInt(e.offsetY);
    ...
Run Code Online (Sandbox Code Playgroud)

然后我寻找鼠标进入div的距离,在哪个方向.

问题是,这种方法有点儿麻烦,因为我需要所有4个边,而不仅仅是两个,所以我必须检查offsetX和offsetY.

如果我在div中移动鼠标,例如X:+ 15,Y:-3(以像素为单位),我知道鼠标是从左侧移动的,因为鼠标在x轴上移动了15px,但在y轴上仅移动了3px .有关这方面的错误是,当X和Y几乎相同时,我不知道鼠标是从左侧还是顶部(例如).

另外,根据我的另一个问题(jQuery:mouseenter/mousemove/mouseover无法通过小div和快速鼠标移动识别),由于浏览器/操作系统的限制,事件不会在div的第一个Pixel上触发.因此,我的"entered_at"坐标不准确 - 例如:

如果我在div(左起)内快速移动鼠标光标,则"entered_at"坐标为x:17,y:76.现在如果我在停止鼠标后将鼠标移动到左边,例如x:6,y:76,起点和offsetX之间的差值为负,所以触发了"光标来自右边"功能......

是否有另一种方法来检测鼠标光标来自哪一侧?

问候,帕特里克

jquery mouseover

6
推荐指数
3
解决办法
7037
查看次数

标签 统计

jquery ×1

mouseover ×1