Javascript 获取鼠标当前的位置实现方法


Posted in Javascript onOctober 27, 2016

有时候,我们需要得到窗口拖动或者鼠标移动的距离,此时可以通过计算鼠标前后在页面中的位置来得到想要的结果,下面介绍几个事件属性:

1、客户区坐标位置

鼠标事件都是在浏览器视口中的特定位置上发生的。这个位置信息保存在事件对象的 clientX 和 clientY 属性中。它们的值表示事件发生时鼠标指针在视口中的水平和垂直坐标(不包括页面滚动的距离)。如下图所示:

Javascript 获取鼠标当前的位置实现方法

var div = document.getElementById("myDiv"); //获取元素
EventUtil.on(div, "click", function(event){
 event = EventUtil.getEvent(event);
 alert("Screen coordinates: " + event.screenX + "," + event.screenY);
});

注:其中,EventUtil.on()表示为元素绑定事件,EventUtil.getEvent(event)表示获取事件对象。EventUtil是自定义的事件对象(使用JavaScript实现),里面包含了一些跨浏览器的方法,具体实现,请看另一篇文章《一些跨浏览器的事件方法》。如果项目使用了jQuery插件,可相应的替换成对应的方法。

2、页面坐标位置

事件对象属性pageX 和pageY,能告诉你事件是在页面中的什么位置发生的。换句话说,这两个属性表示鼠标光标在页面中的位置(相当于鼠标在窗口中的位置坐标 + 页面滚动的距离)。

var div = document.getElementById("myDiv");//获取id为"myDiv"的元素
EventUtil.on(div, "click", function(event){//为元素绑定click事件
 event = EventUtil.getEvent(event);//获取event事件对象
 var pageX = event.pageX,pageY = event.pageY;
 if (pageX === undefined){//IE8及更早版本
  pageX = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
 }
 if (pageY === undefined){
  pageY = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
 }
 alert("Page coordinates: " + pageX + "," + pageY);
});

3、屏幕坐标位置

通过screenX 和screenY 属性就可以确定鼠标事件发生时鼠标指针相对于整个屏幕的坐标信息。如下图所示:

Javascript 获取鼠标当前的位置实现方法

var div = document.getElementById("myDiv");
EventUtil.on(div, "click", function(event){
 event = EventUtil.getEvent(event);
 alert("Screen coordinates: " + event.screenX + "," + event.screenY);
});

文章参考自《JavaScript高级程序设计第三版》

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jquery trim() 功能源代码
Feb 14 Javascript
ScrollDown的基本操作示例
Jun 09 Javascript
浅析jQuery1.8的几个小变化
Dec 10 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
一次$.getJSON不执行的简单记录
Jul 19 Javascript
JavaScript定时器setTimeout()和setInterval()详解
Aug 18 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
three.js实现3D模型展示的示例代码
Dec 31 Javascript
vue移动端项目缓存问题实践记录
Oct 29 Javascript
TypeScript之调用栈的实现
Dec 31 Javascript
通过实例解析vuejs如何实现调试代码
Jul 16 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 #Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 #Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 #Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
Oct 27 #Javascript
简单理解vue中el、template、replace元素
Oct 27 #Javascript
深入理解JavaScript定时机制
Oct 27 #Javascript
解析javascript图片懒加载与预加载的分析总结
Oct 27 #Javascript
You might like
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
Python中的choice()方法使用详解
2015/05/15 Python
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
python实现录音小程序
2020/10/26 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
python中time tzset()函数实例用法
2021/02/18 Python
网络安全类面试题
2015/08/01 面试题
机械设计及其自动化专业推荐信
2013/10/31 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
会计专业自荐书
2014/07/08 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
python 学习GCN图卷积神经网络
2022/05/11 Python