解决IE中clientX 2px偏差
来源:百度文库 编辑:神马文学网 时间:2024/04/29 16:00:15
不同浏览器之间的兼容性问题,实在让人头痛,常常骂变态,但有时IE也让人窝火!
event.clientX 和 event.clientY据微软说是除窗口装饰及滚动条外的鼠标离窗口最右边和最上边的距离。但是他的计算却是从(2,2)开始的,而不是(0,0),这两个像素存在于document.documentElement.clientLeft 里面。
在标准模式(standards mode)下,clientX 是从 0 开始计算的,而在差异模式下(quirks mode,有没有更好的翻译?),是从2 开始的,但奇怪的是,测试两种模式都是从2,2 开始的。
实际上,这个值是分别存在于 document.documentElement.clientLeft 和document.body.clientLeft 。在 standards mode下面,document.documentElement.clientLeft 值为 2,document.body.clientLeft 为0 。在 quirks mode 下面正好相反 document.documentElement.clientLeft 为 0,document.body.clientLeft 值为2 。
所以,想要得到准确的鼠标位置,必须:
x=event.clientX-document.documentElement.clientLeft - document.body.clientLeft ;
y=event.clientY-document.documentElement.clientTop - document.body.clientTop ;
注意,以上代码仅适用于IE,firefox两个值都是undefined。
event.clientX 和 event.clientY据微软说是除窗口装饰及滚动条外的鼠标离窗口最右边和最上边的距离。但是他的计算却是从(2,2)开始的,而不是(0,0),这两个像素存在于document.documentElement.clientLeft 里面。
在标准模式(standards mode)下,clientX 是从 0 开始计算的,而在差异模式下(quirks mode,有没有更好的翻译?),是从2 开始的,但奇怪的是,测试两种模式都是从2,2 开始的。
实际上,这个值是分别存在于 document.documentElement.clientLeft 和document.body.clientLeft 。在 standards mode下面,document.documentElement.clientLeft 值为 2,document.body.clientLeft 为0 。在 quirks mode 下面正好相反 document.documentElement.clientLeft 为 0,document.body.clientLeft 值为2 。
所以,想要得到准确的鼠标位置,必须:
x=event.clientX-document.documentElement.clientLeft - document.body.clientLeft ;
y=event.clientY-document.documentElement.clientTop - document.body.clientTop ;
注意,以上代码仅适用于IE,firefox两个值都是undefined。
解决IE中clientX 2px偏差
解决IE器常见故障
初学flash-解决IE中FLASH链接区域鼠标闪动的问题
秘技:让Vista中IE浏览速度提升50%[2]
厦门PX事件始末2
IE浏览器故障及解决大全
在Firefox中运行IE
投资者普遍有心理偏差(2)
投资者普遍有心理偏差(2)
厦门PX事件始末2继续
解决IE更新对FLASH产生影响的方法
如何解决IE第二层网页打不开的问题
如何解决IE第二层网页打不开的问题
浏览器问题小锦囊之解决IE常见故障
桌面出现无法删除的IE图标如何解决?
IE无响应教你解决的办法
解决桌面IE图标或者我的电脑无法删除
解决IE首页被绑架问题 -- ZDNET安全频道
怎样解决高清晰电影上的ie图标
运行Qtp ie用不了的问题如何解决
IE无法打开网页的常见原因及解决
拔除IE收藏夹中钉子户:链接文件夹
拔除IE收藏夹中钉子户:链接文件夹
纠正心理偏差的训练过程(2)