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 相关文章推荐
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
Dec 30 Javascript
简单的Jquery遮罩层代码实例
Nov 14 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
Jun 26 Javascript
js获取鼠标位置实例详解
Dec 09 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
Feb 18 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
Dec 28 Javascript
Vue.js如何实现路由懒加载浅析
Aug 14 Javascript
Vue resource三种请求格式和万能测试地址
Sep 26 Javascript
js实现点击选项置顶动画效果
Aug 25 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
详解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中Session的概念
2006/10/09 PHP
php a simple smtp class
2007/11/26 PHP
php allow_url_include的应用和解释
2010/04/22 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php生成二维码
2015/08/10 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
php实现简单四则运算器
2020/11/29 PHP
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
python tqdm库的使用
2020/11/30 Python
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
专科毕业生学习生活的自我评价
2013/10/26 职场文书
自动化专业毕业生自荐信
2013/11/01 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
结婚典礼证婚词
2014/01/11 职场文书
伦敦奥运会口号
2014/06/13 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
红色电影观后感
2015/06/18 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
golang特有程序结构入门教程
2021/06/02 Python
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript