当前位置: 首页 > 面试题库 >

查找鼠标相对于元素的位置

顾永福
2023-03-14
问题内容

我想使用画布制作一个绘画应用程序。所以我需要找到鼠标在画布上的位置。


问题答案:

对于使用JQuery的人:

有时,当您拥有嵌套元素时,其中一个元素会附加事件,这可能会使您难以理解浏览器将其视为父级。在这里,您可以指定哪个父级。

您采用鼠标位置,然后从父元素的偏移位置中减去它。

var x = evt.pageX - $('#element').offset().left;
var y = evt.pageY - $('#element').offset().top;

如果要在滚动窗格内的页面上获取鼠标位置:

var x = (evt.pageX - $('#element').offset().left) + self.frame.scrollLeft();
var y = (evt.pageY - $('#element').offset().top) + self.frame.scrollTop();

或相对于页面的位置:

var x = (evt.pageX - $('#element').offset().left) + $(window).scrollLeft();
var y = (evt.pageY - $('#element').offset().top) + $(window).scrollTop();

请注意以下性能优化:

var offset = $('#element').offset();
// Then refer to 
var x = evt.pageX - offset.left;

这样,JQuery不必查找#element每一行。

下面的@anytimecoder为支持getBoundingClientRect()的浏览器提供了一个更高的纯JavaScript版本。



 类似资料:
  • 问题内容: 确定元素相对于文档/正文/浏览器窗口的位置的最简单方法是什么? 现在,我正在使用,但是此方法只给您相对于父元素的位置,因此您需要确定body元素有多少个父元素,以了解相对于body /浏览器窗口/文档位置的位置。 这种方法也很麻烦。 问题答案: 您可以遍历DOM的顶层。

  • 有什么想法吗?提前谢了。

  • 问题内容: 如何按照自然风格对齐工具提示:鼠标指针的右下角? 问题答案: 对于默认的工具提示行为,只需添加属性。但是它不能包含图像。 在您弄清楚我是用纯JavaScript完成此问题之前,希望您发现它有用。图像将弹出并跟随鼠标。 JavaScript CSS 扩展多个元素 多个元素的一种解决方案是更新所有工具提示,并在鼠标移动时将其设置在光标下方。

  • 如何根据具有绝对位置的子元素高度增加具有相对位置的父元素的高度。 在下面的例子中,父元素的高度显示为0px PS:我不想使用任何脚本 预期: 我得到的是: JSFIDLE 超文本标记语言: CSS:

  • 我怎么能做那样的东西?i、 e当我在绝对下拉菜单上悬停时,相对下拉链接应该应用下面的样式。 还是只通过js求解?救救我。 我的同僚们都是精英。Facere,saepe,别这样!在别名处的发明者排斥物减去不可交换的最大非共和国劳动量(obcaecati odit omnis)?Ipsam、iusto dolorum dolorem voluptatem、建筑师ullam mollitia、面部劳损水

  • 我有一个表和一个div,我想使用position()将div相对于表单元格放置: 如果td1在窗口内(无水平滚动),则div放置正确。但是,如果桌子比窗口宽,则div放置错误(推到左侧)-位置()。top是正确的,但position()。左侧是这样的:div将完全位于窗口内。我试着把桌子放在一个足够宽(比窗户宽)的div里,但我仍然看到同样的行为。 关于如何正确定位div相对于窗口之外的元素的任何