Vincent Thinking

All about Vincent's work and life

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  34 随笔 :: 0 文章 :: 183 评论 :: 0 Trackbacks
当需要取到鼠标点击相对于层的位置信息时,在ie下可以用event.offsetX, evnet.offsetY,在Firefox下是event.layerX, event.layerY。但是firefox下总是有问题,取到的不是相对于层的坐标,而是pageX,pageY。 Google了半天也没有发现什么解决办法,最后在一个网站看到一个例子,原来在层中要设置position为absolute或者relative。 OK,问题解决,这点问题竟然让我花费了2个小时。 :(
posted on 2005-11-25 16:24 Vincent Thinking 阅读(3114) 评论(7)  编辑  收藏 所属分类: Work

评论

# re: 关于layerX,layerY 2007-01-11 12:05 susu
太谢谢了,解决了我遇到的一个大问题  回复  更多评论
  

# re: 关于layerX,layerY 2007-01-11 12:05 susu
太谢谢了,解决了我遇到的一个大问题  回复  更多评论
  

# re: 关于layerX,layerY 2007-06-02 23:22 angel
非常谢谢.我就是FIREFOX 计算layerX出问题.怎么也不是相对于发生事件的对象的坐标.
看了你的文章.弄好了.原因是没设置position  回复  更多评论
  

# re: 关于layerX,layerY 2008-04-28 19:08 nichol
再一次证明firefox没有ie那么完善,虽然比较接近w3c,但却觉得w3c没有大哥的风范。  回复  更多评论
  

# re: 关于layerX,layerY 2008-08-18 17:37 tangzx
谢谢...我也是被这个地方搞死了...不过在ff2下是好的 在ff3下就得加上position  回复  更多评论
  

# re: 关于layerX,layerY 2008-11-03 21:52 gogog
哈哈还好,还是自己计算好
鼠标指向的元素相对于网页左上角的偏移-鼠标相对于网页左上角的偏移  回复  更多评论
  

# re: 关于layerX,layerY 2009-05-16 13:23 JavaScriptor
不明白不要乱讲,在这里误导群众!

offsetX/offsetY:相对于当前元素的位移
x/y:相对于当前座标系的位移,但是IE常常搞错当前座标系
layerX/layerY:相对于当前座标系的位移
pageX/pageY:相对于网页的位移
clientX/clientY:相对于可视窗口的位移
screenX/screenY:相对于屏幕的位移

offsetX/offsetY:W3C- IE+ Firefox- Opera+ Safari+
x/y:W3C- IE+ Firefox- Opera+ Safari+
layerX/layerY:W3C- IE- Firefox+ Opera- Safari+
pageX/pageY:W3C- IE- Firefox+ Opera+ Safari+
clientX/clientY:W3C+ IE+ Firefox+ Opera+ Safari+
screenX/screenY:W3C+ IE+ Firefox+ Opera+ Safari+

六对属性只有clientX/clientY和screenX/screenY是W3C规范内的。
而offsetX/offsetY和pageX/pageY知其一组即可通过计算取得另一组,对于JS开发者而言,Firefox/Opera/Safari提供的pageX/pageY更加实用。x/y和layerX/layerY本应该是作用相同、名称不同的两组属性,即相对于offsetParent对象的位移,但是IE对offsetParent的判断却相当不准确,大部份情况下offsetParent对象都等于body对象,最严重的后果就是在一个绝对定位的层中offsetParent对象本应该为层对象,可IE却依旧为body对象,导致座标系混乱,而Opera和Safari中的x/y则同样继承了IE中的错误,因此x/y属性能不用则不用。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: