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:getElementsByName()使用方法及示例
Oct 28 Javascript
判断输入的字符串是否是日期格式的简单方法
Jul 11 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
Dec 22 Javascript
微信小程序手势操作之单触摸点与多触摸点
Mar 10 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
Nov 24 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 Javascript
Bootstrap Paginator+PageHelper实现分页效果
Dec 29 Javascript
详解Next.js页面渲染的优化方案
Jan 27 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
JS实现给数组对象排序的方法分析
Jun 24 Javascript
如何通过Proxy实现JSBridge模块化封装
Oct 22 Javascript
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
详解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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
php中上传文件的的解决方案
2018/09/25 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
大专学生推荐信范文
2013/11/19 职场文书
安全检查管理制度
2014/02/02 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
新店开张活动方案
2014/08/24 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
高三语文复习计划
2015/01/19 职场文书
公司财务管理制度
2015/08/04 职场文书
聘用合同范本
2015/09/21 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers