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 脚本的加载与执行
Apr 19 Javascript
Jquery 动态添加按钮实现代码
May 06 Javascript
如何在指定的地方插入html内容和文本内容
Dec 23 Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
完善的jquery处理机制
Feb 21 Javascript
RequireJs的使用详解
Feb 19 Javascript
AngularJS 单选框及多选框的双向动态绑定
Apr 20 Javascript
js字符串与Unicode编码互相转换
May 17 Javascript
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
layui自己添加图片按钮并点击跳转页面的例子
Sep 14 Javascript
javascript实现时间日期的格式化的方法汇总
Aug 06 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函数)
2006/10/09 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
js DOM模型操作
2009/12/28 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
webpack入门必知必会
2017/01/16 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
javascript 数据存储的常用函数总结
2017/06/01 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
幼儿园实习生辞职信
2014/01/20 职场文书
党员干部公开承诺书
2014/03/26 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
边城读书笔记
2015/06/29 职场文书
格林童话读书笔记
2015/06/30 职场文书
技术入股合作协议书
2016/03/21 职场文书