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遍历数组与筛选数组的方法
Nov 05 Javascript
jquery iframe操作详细解析
Nov 20 Javascript
FF IE浏览器修改标签透明度的方法
Jan 27 Javascript
jQuery验证元素是否为空的两种常用方法
Mar 17 Javascript
thinkjs之页面跳转同步异步操作
Feb 05 Javascript
详解React中的组件通信问题
Jul 31 Javascript
解决ionic和angular上拉加载的问题
Aug 03 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
JS实现可视化文件上传
Sep 08 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
vue 获取及修改store.js里的公共变量实例
Nov 06 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 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 程式大小
2006/12/06 PHP
php下使用SMTP发邮件的代码
2008/01/10 PHP
PHP中常用数组处理方法实例分析
2008/08/30 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
python构建深度神经网络(DNN)
2018/03/10 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
采购员岗位职责
2013/11/15 职场文书
七年级上册生物的课件
2019/08/07 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
nginx搭建NFS网络文件系统
2022/04/14 Servers