惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

博客园 - K_Reverter

甘南-青海湖九日游(一.出发) Jla框架介绍(五) 设计模式:模块和实例管理 Jla框架介绍(四) 配置管理模式 Jla框架介绍(三) 资源引用和Sprite模式 Jla框架介绍(二) 核心和基本规范 - K_Reverter - 博客园 Jla框架介绍(一) 导言和发展历程 解散了地图接口讨论群 重新趋于稳定 黄山游记(三.总结和经验) 黄山游记(二) 黄山游记(一) 杭州西湖长线暴走行程 在杭州的日子 离开腾讯了 谁在频繁的访问我的服务器接口?请和我联系 - K_Reverter - 博客园 我的网站已经全部运行在GAE下 想离开腾讯了 关于geohash的简单探讨 在GAE数据库之中保存文件
求助:关于IE之中获取鼠标位置
K_Reverter · 2009-05-21 · via 博客园 - K_Reverter

        实在抱歉,很少有技术求助类型的帖子被发到博客园首页这个万众瞩目的地方,不过作为一个使用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被计算了两遍;

        如果能够理解这个问题,请千万帮我解惑,万分感谢!