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知识点收藏
Feb 22 Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
Google 地图API Map()构造器详解
Aug 06 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
vue实现验证码输入框组件
Dec 14 Javascript
微信小程序实现YDUI的ScrollNav组件
Feb 02 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 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
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
tornado捕获和处理404错误的方法
2014/02/26 Python
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
基于Python log 的正确打开方式
2018/04/28 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
Python删除n行后的其他行方法
2019/01/28 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
python中sys模块是做什么用的
2020/08/16 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
门卫岗位职责
2015/02/09 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python