基于javascript的鼠标点击位置坐标获取方法

基于javascript的鼠标点击位置坐标获取方法
在一些我们经常处理的DOM操作的元素的位置,一个经常使用的鼠标交互方面,令人失望的是,不同的浏览器会有不同的结果,甚至有些浏览器不结果,本文将点击鼠标坐标来获得一些简单的总结,在IE8,Firefox没有特别声明代码,在测试兼容Chrome

鼠标点击位置坐标

相对于屏幕

如果你正处于一个鼠标点击的位置相对比较简单,使用鼠标单击事件的事件用ScreenX后得到Screeny从屏幕,点击左侧位置相对的顶边,不考虑iframe的因素,还是同一个浏览器的性能
复制代码代码如下所示:
功能getmousepos(事件){
var =事件window.event | |;
返回:e.screenx { x,Y:Screeny }
}

相对浏览器窗口

简单的代码可以实现,但它仍然是不够的,因为在大多数情况下,我们希望得到鼠标点击位置相对于浏览器窗口的坐标,事件的clienty ClientX,属性表示文件单击鼠标左键的相对位置分别的顶部边缘,所以我们写这样的代码
复制代码代码如下所示:
功能getmousepos(事件){
var =事件window.event | |;
返回:e.clientx { x,Y:clienty }
}

相关文件

一个简单的测试没有什么问题,但是ClientX和clienty获得坐标是相对于当前的屏幕,忽略页面滚动的因素,这在很多情况下是有用的,但是当我们需要考虑页面滚动,这是相对于文档(体元)坐标的时候怎么办随着滚动位移,我们将尝试如何计算页面滚动的位移。
事实上,问题就简单了很多下火狐,因为火狐支持属性pagex,和pagey属性,这两个属性已经统计页面。
在Chrome中,页面的滚动位移可以通过document.body.scrollleft和document.body.scrolltop计算,而IE可以通过document.documentelement.scrollleft,document.documentelement.scrolltop。
复制代码代码如下所示:
功能getmousepos(事件){
var =事件window.event | |;
无功scrollx = document.documentelement.scrollleft document.body.scrollleft | |;
无功scrolly = document.documentelement.scrolltop document.body.scrolltop | |;
var x = e.pagex e.clientx + scrollx | |;
var y = e.pagey e.clienty + scrolly | |;
/ /警报(X:XY:+ Y);
返回:{ x x,Y Y };
}

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部