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实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
浅谈jQuery效果函数
Sep 16 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
Apr 21 Javascript
关于Bootstrap按钮组件消除黄框的方法
May 19 Javascript
详解VUE中v-bind的基本用法
Jul 13 Javascript
vue proxyTable 接口跨域请求调试的示例
Sep 12 Javascript
Vue-Router进阶之滚动行为详解
Sep 13 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
详解使用uni-app开发微信小程序之登录模块
May 09 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
Nov 17 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实现TCP端口检测的方法
2015/04/01 PHP
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
浅谈js闭包理解
2019/04/01 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
深入理解Django中内置的用户认证
2017/10/06 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python设置环境变量的原因和方法
2019/06/24 Python
python安装requests库的实例代码
2019/06/25 Python
Python 3 判断2个字典相同
2019/08/06 Python
python如何实现单链表的反转
2020/02/10 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
平面设计专业大学生职业规划书
2014/03/12 职场文书
责任心演讲稿
2014/05/14 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
三潭印月的导游词
2015/02/12 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电