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 相关文章推荐
用javascript实现计算两个日期的间隔天数
Aug 14 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
Apr 23 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
javascript移动开发中touch触摸事件详解
Mar 18 Javascript
基于Jquery插件实现跨域异步上传文件功能
Apr 26 Javascript
angular.js分页代码的实例
Jul 27 Javascript
深入理解ES6的迭代器与生成器
Aug 19 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
Nov 21 Javascript
Element input树型下拉框的实现代码
Dec 21 Javascript
layui实现根据table数据判断按钮显示情况的方法
Sep 26 Javascript
JavaScript监听键盘事件代码实现
Jun 03 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与XML联手进行网站编程代码实例
2008/07/10 PHP
封装一个PDO数据库操作类代码
2009/09/09 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
laravel自定义分页效果
2017/07/23 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
Python实现备份文件实例
2014/09/16 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python进程间通信之共享内存详解
2017/10/30 Python
python自动下载图片的方法示例
2020/03/25 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
视图的作用
2014/12/19 面试题
武汉瑞得软件笔试题
2015/10/27 面试题
大学生个人简历自我评价
2013/11/16 职场文书
单位介绍信范文
2014/01/18 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
表演方阵解说词
2014/02/08 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android
JS实现简单的九宫格抽奖
2022/06/28 Javascript