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 相关文章推荐
使用onbeforeunload属性后的副作用
Mar 08 Javascript
jQuery参数列表集合
Apr 06 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
Jquery动态添加输入框的方法
May 29 Javascript
JavaScript常用标签和方法总结
Sep 01 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 Javascript
JS中的二叉树遍历详解
Mar 18 Javascript
javascript实现根据汉字获取简拼
Sep 25 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
Jquery树插件zTree实现菜单树
Jan 24 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
Webpack按需加载打包chunk命名的方法
Sep 22 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
简单理解Python中基于生成器的状态机
2015/04/13 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
python3实现windows下同名进程监控
2018/06/21 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
Python netmiko模块的使用
2020/02/14 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
巴西宠物商店:Cobasi
2019/04/19 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
解除劳动合同协议书范本
2014/04/14 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
求职自我推荐信
2015/03/24 职场文书
2015年领班工作总结
2015/04/29 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书