js实现获取鼠标当前的位置

发布时间 - 2026-01-10 21:49:36    点击率:

有时候,我们需要得到窗口拖动或者鼠标移动的距离,此时可以通过计算鼠标前后在页面中的位置来得到想要的结果,下面介绍几个事件属性:

1、客户区坐标位置

鼠标事件都是在浏览器视口中的特定位置上发生的。这个位置信息保存在事件对象的 clientX 和 clientY 属性中。它们的值表示事件发生时鼠标指针在视口中的水平垂直坐标(不包括页面滚动的距离)。如下图所示:

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属性就可以确定鼠标事件发生时鼠标指针相对于整个屏幕的坐标信息。如下图所示:

var div = document.getElementById("myDiv");
EventUtil.on(div, "click", function(event){
 event = EventUtil.getEvent(event);
 alert("Screen coordinates: " + event.screenX + "," + event.screenY);
});

文章参考自《JavaScript高级程序设计第三版》

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 获取当前鼠标的位置  # 获取鼠标当前位置  # js与jquery中获取当前鼠标的x、y坐标位置的代码  # 使用JS获取当前地理位置方法汇总  # js获取元素在浏览器中的绝对位置  # js实现滚动条滚动到某个位置便自动定位某个tr  # js获取元素相对窗口位置的实现代码  # JS中获取 DOM 元素的绝对位置实例详解  # JS控制弹出新页面窗口位置和大小的方法  # js获取鼠标位置实例详解  # JS获取当前地理位置的方法  # 一篇文章让你彻底搞懂js中的位置计算  # 鼠标  # 是在  # 所示  # 绑定  # 如下图  # 口中  # 鼠标指针  # 几个  # 告诉你  # 这两个  # 可以通过  # 自定义  # 拖动  # 相对于  # 不包括  # 程序设计  # 就可以  # 第三版  # 更早  # 替换成 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何在景安服务器上快速搭建个人网站?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  西安专业网站制作公司有哪些,陕西省建行官方网站?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  深圳网站制作的公司有哪些,dido官方网站?  EditPlus 正则表达式 实战(3)  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何快速登录WAP自助建站平台?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  微信小程序 HTTPS报错整理常见问题及解决方案  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  详解阿里云nginx服务器多站点的配置  如何在搬瓦工VPS快速搭建网站?  如何在云指建站中生成FTP站点?  想要更高端的建设网站,这些原则一定要坚持!  Swift中swift中的switch 语句  原生JS获取元素集合的子元素宽度实例  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  iOS中将个别页面强制横屏其他页面竖屏  如何在服务器上配置二级域名建站?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel如何生成URL和重定向?(路由助手函数)  Laravel如何使用Collections进行数据处理?(实用方法示例)  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  如何批量查询域名的建站时间记录?  JS弹性运动实现方法分析  浅谈Javascript中的Label语句  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  如何在香港免费服务器上快速搭建网站?  bing浏览器学术搜索入口_bing学术文献检索地址  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Java类加载基本过程详细介绍  Laravel定时任务怎么设置_Laravel Crontab调度器配置  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何在自有机房高效搭建专业网站?  如何快速查询网址的建站时间与历史轨迹?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  node.js报错:Cannot find module 'ejs'的解决办法