js实现获取鼠标当前的位置


Posted in Javascript onDecember 14, 2016

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

1、客户区坐标位置

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

js实现获取鼠标当前的位置

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实现),里面包含了一些跨浏览器的方法,具体实现,请看另一篇文章《js 实现一些跨浏览器的事件方法详解及实例》。如果项目使用了jQuery插件,可相应的替换成对应的方法。

2、页面坐标位置

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

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、屏幕坐标位置

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

js实现获取鼠标当前的位置

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

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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
Nov 30 Javascript
判断是否安装flash player及当前版本的JS代码
Aug 08 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
javascript自定义函数参数传递为字符串格式
Jul 29 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
Django与Vue语法的冲突问题完美解决方法
Dec 14 Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 Javascript
JavaScript递归函数定义与用法实例分析
Jan 24 Javascript
解决vuex数据页面刷新后初始化操作
Jul 26 Javascript
详解vue.js组件化开发实践
Dec 14 #Javascript
JavaScript Ajax实现异步通信
Dec 14 #Javascript
微信小程序 配置文件详细介绍
Dec 14 #Javascript
微信小程序 闭包写法详细介绍
Dec 14 #Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 #Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 #Javascript
详解jQuery停止动画——stop()方法的使用
Dec 14 #Javascript
You might like
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
js获取页面description的方法
2015/05/21 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
在django中自定义字段Field详解
2019/12/03 Python
python help函数实例用法
2020/12/06 Python
荷兰本土平价百货:HEMA
2017/10/23 全球购物
Sql面试题
2013/03/20 面试题
物业管理求职自荐信
2013/09/25 职场文书
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
迎新晚会主持词
2014/03/24 职场文书
有关爱国演讲稿
2014/05/07 职场文书
给市场的环保建议书
2014/05/14 职场文书
环保建议书200字
2014/05/14 职场文书
校庆团日活动总结
2014/08/28 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
捐款仪式主持词
2015/07/04 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
24年收藏2000多部退役军用电台
2022/02/18 无线电
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL