js获取鼠标位置
来源:互联网 发布:次新人工智能概念股 编辑:程序博客网 时间:2024/05/22 06:35
在一些DOM操作中我们经常会跟元素的位置打交道,鼠标交互式一个经常用到的方面,令人失望的是不同的浏览器下会有不同的结果甚至是有的浏览器下没结果,这篇文章就上鼠标点击位置坐标获取做一些简单的总结,没特殊声明代码在IE8+,FireFox+,Chrome+下进行测试兼容。
鼠标点击位置坐标
一、相对于屏幕
如果是涉及到鼠标点击确定位置相对比较简单,获取到鼠标点击事件后,事件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元素)的坐标时怎么办呢?加上滚动的位移就可以了,下边我们试试怎么计算页面滚动的位移。
其实在Firefox下问题会简单很多,因为Firefox支持属性pageX,与pageY属性,这两个属性已经把页面滚动计算在内了。
在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 }; }
1 0
- js获取鼠标位置
- js获取鼠标位置
- js获取鼠标位置
- js获取鼠标位置
- js获取鼠标的位置
- js 获取鼠标的位置
- js获取鼠标点击位置
- js 获取鼠标的位置
- js 获取鼠标的位置
- js怎么样获取鼠标位置
- js获取鼠标坐标位置
- js获取鼠标移动位置
- js获取鼠标点击位置(很旧很旧。。。)
- js获取鼠标位置的各种方法
- js获取鼠标点击的位置
- js获取鼠标和滚动条位置
- js获取鼠标位置的各种方法
- JS获取鼠标位置、当前元素所在位置
- 452. Minimum Number of Arrows to Burst Balloons
- 利用EXCEL将多列多行数据转换为SQL语句【新增、删除、修改同理】
- javascript 封装
- iOS-裁剪图片
- 使用TP上传类,一个表单多个file上传丢失部分文件
- js获取鼠标位置
- Cordova自带webview的cookie自动同步问题,和引入crosswork插件后cookie自动同步问题的解决
- 关于XP或03无法访问Win7、2008的共享解决
- Oracle sql常用方法(持续更新)
- 管家婆ERP V3问题
- centos7上安装docker1.12
- Mac下配置Freeline
- python 批量写oracle
- OpenCV分离图像通道