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 相关文章推荐
如何判断图片地址是否失效
Feb 02 Javascript
jquery tab插件制作实现代码
Jun 22 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
Dec 07 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
Bootstrap Fileinput文件上传组件用法详解
May 10 Javascript
AngularJS 自定义指令详解及示例代码
Aug 17 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
Dec 05 Javascript
Javascript Promise用法详解
May 10 Javascript
vue解决一个方法同时发送多个请求的问题
Sep 25 Javascript
vue之debounce属性被移除及处理详解
Nov 13 Javascript
node.js事件轮询机制原理知识点
Dec 22 Javascript
详解如何解决使用JSON.stringify时遇到的循环引用问题
Mar 23 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python实现爬取逐浪小说的方法
2015/07/07 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
Python Grid使用和布局详解
2018/06/30 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
python的数学算法函数及公式用法
2020/11/18 Python
python爬取抖音视频的实例分析
2021/01/19 Python
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
企业行政文员岗位职责
2013/12/03 职场文书
展会邀请函范文
2014/01/26 职场文书
金融管理应届生求职信
2014/02/20 职场文书
销售顾问岗位职责
2014/02/25 职场文书
销售工作决心书
2015/02/04 职场文书
先进教师个人总结
2015/02/11 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
python中tkinter复选框使用操作
2021/11/11 Python