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 相关文章推荐
javascript小数计算出现近似值的解决办法
Feb 06 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
JS实现适合于后台使用的动画折叠菜单效果
Sep 21 Javascript
jquery.cookie实现的客户端购物车操作实例
Dec 24 Javascript
jQuery取消特定的click事件
Feb 29 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 Javascript
JS清除字符串中重复值的实现方法
Aug 03 Javascript
利用Angular.js编写公共提示模块的方法教程
May 28 Javascript
node.js实现的装饰者模式示例
Sep 06 Javascript
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
学前端,css与javascript重难点浅析
Jun 11 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 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
JS动画效果代码3
2008/04/03 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
Python translator使用实例
2008/09/06 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
应聘医学检验人员自荐信
2013/09/27 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
环保倡议书
2014/04/14 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
工厂车间标语
2014/06/19 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
PHP策略模式写法
2021/04/01 PHP