如何使用 jQuery 获取相对于目标元素的准确鼠标点击坐标?
使用 jQuery 了解目标元素上的鼠标单击坐标
使用 jQuery 处理 HTML 元素上的单击事件时,了解如何准确检索鼠标坐标至关重要相对于目标元素的指针。让我们通过详细的示例来探讨和阐明这个主题。
问题诊断
考虑以下事件处理程序:
jQuery("#seek-bar").click(function(e){ var x = e.pageX - e.target.offsetLeft; alert(x); });
目标是获取鼠标指针相对于单击时的#seek-bar 元素。但是,提供的代码可能会产生不正确的结果。
了解位置属性
1. event.pageX, event.pageY:
这些属性提供鼠标指针相对于整个文档的坐标。
参考: http://api.jquery.com/event.pageX/
http://api.jquery.com/event.pageY/
2. offset():
此函数返回元素在其包含文档中的偏移位置(距页面左上角的距离)。
参考: http://api.jquery.com/offset/
3. position():
此函数返回元素在其包含文档中的位置(相对于其父元素)。
参考: http://api .jquery.com/position/
要解决最初的问题,考虑这些位置属性及其预期用途至关重要。在这种情况下,要获取鼠标指针相对于 #seek-bar 的位置,我们应该使用 offset() 函数而不是 offsetLeft。
更正的代码:
jQuery("#seek-bar").click(function(e){ var x = e.pageX - $(this).offset().left; alert(x); });
示例演示
为了说明这些位置属性之间的差异,这里有一个示例 HTML 代码段和相应的 JavaScript 代码:
HTML
<body> <div>
JavaScript
$(document).ready(function (e) { $('#A').click(function (e) { //Default mouse Position alert(e.pageX + ' , ' + e.pageY); }); $('#B').click(function (e) { //Offset mouse Position var posX = $(this).offset().left, posY = $(this).offset().top; alert((e.pageX - posX) + ' , ' + (e.pageY - posY)); }); $('#C').click(function (e) { //Relative ( to its parent) mouse position var posX = $(this).position().left, posY = $(this).position().top; alert((e.pageX - posX) + ' , ' + (e.pageY - posY)); }); });
通过点击这些 div,您可以根据所使用的位置属性观察不同的结果。
以上是如何使用 jQuery 获取相对于目标元素的准确鼠标点击坐标?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)
