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


相关推荐: php结合redis实现高并发下的抢购、秒杀功能的实例  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Python结构化数据采集_字段抽取解析【教程】  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  黑客如何利用漏洞与弱口令入侵网站服务器?  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何在建站宝盒中设置产品搜索功能?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  如何在阿里云部署织梦网站?  简单实现Android文件上传  手机软键盘弹出时影响布局的解决方法  青岛网站建设如何选择本地服务器?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  重庆市网站制作公司,重庆招聘网站哪个好?  Linux系统运维自动化项目教程_Ansible批量管理实战  如何在 Pandas 中基于一列条件计算另一列的分组均值  Android自定义listview布局实现上拉加载下拉刷新功能  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  C语言设计一个闪闪的圣诞树  如何在宝塔面板创建新站点?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  微信小程序 input输入框控件详解及实例(多种示例)  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  浅述节点的创建及常见功能的实现  如何在IIS管理器中快速创建并配置网站?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Android使用GridView实现日历的简单功能  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  如何在企业微信快速生成手机电脑官网?  Laravel如何实现事件和监听器?(Event & Listener实战)  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  如何快速查询域名建站关键信息?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  如何在腾讯云服务器快速搭建个人网站?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel如何使用Vite进行前端资源打包?(配置示例)  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法