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 相关文章推荐
js 操作select和option常用代码整理
Dec 13 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
Sep 01 Javascript
利用Vue.js指令实现全选功能
Sep 08 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
基于JavaScript实现无缝滚动效果
Jul 21 Javascript
JavaScript监听手机物理返回键的两种解决方法
Aug 14 Javascript
JS简单实现滑动加载数据的方法示例
Oct 18 Javascript
vue组件从开发到发布的实现步骤
Nov 11 Javascript
Vue利用Blob下载原生二进制数组文件
Sep 25 Javascript
JavaScript修改注册表实例代码
Jan 05 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 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
PHP实现用户认证及管理完全源码
2007/03/11 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
详解如何在vue中使用sass
2017/06/21 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python删除windows垃圾文件的方法
2015/07/14 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
理工科学生的自我评价
2013/12/15 职场文书
大四自我鉴定
2014/02/08 职场文书
入党自荐书范文
2014/03/09 职场文书
党校学习心得体会范文
2014/09/09 职场文书
中学生自我评价2015
2015/03/03 职场文书
大学生实习介绍信
2015/05/05 职场文书
毕业证明模板
2015/06/19 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技