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 相关文章推荐
iframe窗口高度自适应的实现方法
Jan 08 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
对new functionName()定义一个函数的理解
May 22 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
Aug 11 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
Bootstrap每天必学之按钮(Button)插件
Apr 25 Javascript
vue单页开发父子组件传值思路详解
May 18 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
angular6的响应式表单的实现
Oct 10 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
Jul 22 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
当json键为数字时的取值方法解析
2013/11/15 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
原生JS实现留言板
2020/03/26 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
python实现二叉查找树实例代码
2018/02/08 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
python变量的存储原理详解
2019/07/10 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
初中生学习生活的自我评价
2013/11/20 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书