【发布时间】:2013-02-07 20:20:12
【问题描述】:
有没有办法检测鼠标光标来自 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,但仅在 -3px y 轴。问题在于,当 X 和 Y 几乎相同时,我不知道鼠标是从左侧还是顶部(例如)。
另外,根据我的另一个问题 (jQuery: mouseenter/mousemove/mouseover not recognized with small div and fast mouse movement),由于浏览器/操作系统的限制,事件不会在 div 一侧的第一个像素上触发。因此,我的“entered_at”坐标不是那么准确 - 示例:
如果我在 div 内(从左至右)快速移动鼠标光标,则“entered_at”坐标位于 x:17,y:76 处。现在,如果我在停止鼠标后将鼠标向左移动,例如移动到 x:6,y:76,则起点和 offsetX 之间的差异为负,因此会触发“光标来自右侧”功能...
还有其他方法可以检测鼠标光标的来源吗?
您好, 帕特里克
【问题讨论】: