求助:关于IE之中获取鼠标位置
2009-05-21 01:45
309 查看
实在抱歉,很少有技术求助类型的帖子被发到博客园首页这个万众瞩目的地方,不过作为一个使用JavaScript开发了多年的开发人员,我觉得这个问题还是有一定的深度的,而且,我确实被这个问题困扰了很久,因此,特别发布求助贴到博客园首页,希望这个问题不会被资深的JavaScript专家觉得太过简单而直接忽略。
这个问题主要是:如何在IE之中获得鼠标事件相对于某个层的位置,这个问题看似简单,不过下面的这个网页的这种情况我却总也没有弄明白,请不辞辛苦,打开此网页看看(源码已经被我简化的不能再简化了)
http://www.step1.cn/position.html
在这个网页之中,鼠标移动的时候,网页的标题栏理论上讲应该实时显示鼠标位置相对于黑框左上角的位置(有时候会显示null,无所谓),可是我们将鼠标从红色方块慢慢移动到绿色方块,会发现显示的值突然变大,也就是说鼠标在绿色区域移动的时候,我的计算位置的函数getEventPosition是不正确的。
关键是:在这种情况下我怎样才能获取到鼠标事件发生的位置呢?
如果你试图给我解惑,请注意以下几点:
1.不允许更改页面的任何DOM元素和属性(包括DTD),请仅仅通过更改getEventPosition函数的计算方法来计算出精确的位置,因为我需要是是一个能普遍适用于多种页面的算法;
2.以上的页面和函数仅仅使用来表现这个问题的而编写的,为了代码简短,删除了很多内容,而且只支持IE浏览器;
3.我说的这个现象在IE6和IE7之中同时存在,IE8我机器上没有安装,因此没有测试;
4.这个问题的症结在于,当鼠标在绿色的层上滑动的时候,event.srcElement是绿色的层,可是event.offsetX却不是鼠标相对于绿色层的位置(似乎是鼠标相对于黑框层的位置),这样就计算出现了偏差,看起来绿色的层的offsetLeft被计算了两遍;
如果能够理解这个问题,请千万帮我解惑,万分感谢!
这个问题主要是:如何在IE之中获得鼠标事件相对于某个层的位置,这个问题看似简单,不过下面的这个网页的这种情况我却总也没有弄明白,请不辞辛苦,打开此网页看看(源码已经被我简化的不能再简化了)
http://www.step1.cn/position.html
在这个网页之中,鼠标移动的时候,网页的标题栏理论上讲应该实时显示鼠标位置相对于黑框左上角的位置(有时候会显示null,无所谓),可是我们将鼠标从红色方块慢慢移动到绿色方块,会发现显示的值突然变大,也就是说鼠标在绿色区域移动的时候,我的计算位置的函数getEventPosition是不正确的。
关键是:在这种情况下我怎样才能获取到鼠标事件发生的位置呢?
如果你试图给我解惑,请注意以下几点:
1.不允许更改页面的任何DOM元素和属性(包括DTD),请仅仅通过更改getEventPosition函数的计算方法来计算出精确的位置,因为我需要是是一个能普遍适用于多种页面的算法;
2.以上的页面和函数仅仅使用来表现这个问题的而编写的,为了代码简短,删除了很多内容,而且只支持IE浏览器;
3.我说的这个现象在IE6和IE7之中同时存在,IE8我机器上没有安装,因此没有测试;
4.这个问题的症结在于,当鼠标在绿色的层上滑动的时候,event.srcElement是绿色的层,可是event.offsetX却不是鼠标相对于绿色层的位置(似乎是鼠标相对于黑框层的位置),这样就计算出现了偏差,看起来绿色的层的offsetLeft被计算了两遍;
如果能够理解这个问题,请千万帮我解惑,万分感谢!
相关文章推荐
- JS获取鼠标位置,兼容IE FF
- 获取事件目标对象的位置坐标或者鼠标位置坐标(兼容IE和火狐)
- IE和FF下获取鼠标当前位置
- js 获取页面高度和宽度(兼容 ie firefox chrome),获取鼠标点击位置
- 获取事件目标对象的位置坐标或者鼠标位置坐标(兼容IE和火狐)
- js获取鼠标点击的位置-火狐IE兼容
- js 获取鼠标的位置(兼容火狐与ie)用了jquery 进行简化操作,但获取鼠标的是纯js,加上<!DOCTYPE 标准
- [求助]关于在状态栏显示自定义坐标系下鼠标指针所在位置坐标的问题
- JS获取鼠标位置,兼容IE FF
- javascript获取鼠标位置部分火狐,ie
- 关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
- javascript获取鼠标位置部分的实例代码(兼容IE,FF)
- Javascript在IE或Firefox下获取鼠标位置的代码
- 用 javascript 获取鼠标(光标)的坐标位置 兼容IE/Firefox等浏览器
- js获取鼠标位置(兼容ie和火狐)
- js 获取页面高度和宽度(兼容 ie firefox chrome),获取鼠标点击位置
- 获取鼠标位置(兼容火狐,IE)
- Javascript在IE或Firefox下获取鼠标位置的代码
- javascript获取鼠标位置部分的实例代码(兼容IE,FF)