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打开新窗口同时关闭旧窗口
Jan 16 Javascript
JS 常用校验函数
Mar 26 Javascript
jquery lazyload延迟加载技术的实现原理分析
Jan 24 Javascript
MooBox 基于Mootools的对话框插件
Jan 20 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
Jul 09 Javascript
js表单提交和submit提交的区别实例分析
Dec 10 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
AngularJS模板加载用法详解
Nov 04 Javascript
ES6概念 ymbol.for()方法
Dec 25 Javascript
react router 4.0以上的路由应用详解
Sep 21 Javascript
JS正则表达式完美实现身份证校验功能
Oct 18 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 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中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
Python进阶之@property动态属性的实现
2019/04/01 Python
python脚本和网页有何区别
2020/07/02 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
您的网上新华书店:文轩网
2016/08/24 全球购物
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
建筑实习自我鉴定
2013/10/18 职场文书
教师档案管理制度
2014/01/23 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript