JavaScript获取鼠标位置的三种方法解析
程序员文章站
2022-05-28 19:33:40
javascript获取鼠标位置的三种方法
在一些dom操作中我们经常会跟元素的位置打交道,鼠标交互式一个经常用到的方面,令人失望的是不同的游览器下会有不同的结果甚至是有的游览器下没结果,这篇文章就...
javascript获取鼠标位置的三种方法
在一些dom操作中我们经常会跟元素的位置打交道,鼠标交互式一个经常用到的方面,令人失望的是不同的游览器下会有不同的结果甚至是有的游览器下没结果,这篇文章就鼠标点击位置坐标获取做一些简单的总结。获取鼠标位置首先要了解什么是event,event是一个声明了全局变量的一个对象,在chrome和ie下,可以随意访问,对于好奇的朋友console.log一下event。但!!!firefox下是没有event这个对象的!!
好消息的是:在ie8,chrome下,是有event这个对象的!
鼠标点击位置坐标
相对于屏幕
如果是涉及到鼠标点击确定位置相对比较简单,获取到鼠标点击事件后,事件screenx,screeny获取的是点击位置相对于屏幕的左边距与上边距,不考虑iframe因素,不同游览器下表现的还算一致。
function getmousepos(event) { var e = event || window.event; return {'x':e.screenx,'y':screeny} }
相对于游览器窗口
简单代码即可实现,然而这时还不够,因为绝大多数情况下我们希望获取鼠标点击位置相对于游览器窗口的坐标,event的clientx,clienty属性分别表示鼠标点击位置相对于文档的左边距,上边距。
function getmousepos(event) { var e = event || window.event; return {'x':e.clientx,'y':clienty} }
相对于文档
clientx与clienty是获取相对于当前屏幕的坐标,忽略了页面滚动因素,这在很多环境下很有用,但当我们需要考虑页面滚动,也就是相对于文档(body元素)的坐标时怎么办呢?只要加上滚动的位移就可以了。
在chrome可以通过document.body.scrollleft,document.body.scrolltop计算出页面滚动位移,而在ie下可以通过document.documentelement.scrollleft,document.documentelement.scrolltop
function getmousepos(event) { var e = event || window.event; var scrollx = document.documentelement.scrollleft || document.body.scrollleft; var scrolly = document.documentelement.scrolltop || document.body.scrolltop; var x = e.pagex || e.clientx + scrollx; var y = e.pagey || e.clienty + scrolly; //alert('x: ' + x + '\ny: ' + y); return { 'x': x, 'y': y }; }
上一篇: poj2492并查集
下一篇: struts2 18拦截器详解(十)
推荐阅读
-
Java解析word,获取文档中图片位置的方法
-
Java解析word,获取文档中图片位置的方法
-
JS获取鼠标位置距浏览器窗口距离的方法示例
-
js获取鼠标点击的位置(教你javascript实时获取鼠标位置)
-
jQuery实现获取table中鼠标click点击位置行号与列号的方法
-
JavaScript中解析JSON数据的三种方法
-
JavaScript获取鼠标位置的三种方法解析
-
Node.js和PHP根据ip获取地理位置的方法_javascript技巧
-
获取鼠标在div中的相对位置的实现代码_javascript技巧
-
获取元素距离浏览器周边的位置的方法getBoundingClientRect_javascript技巧