如果将鼠标悬停在上面,我可以获得一个对象。我可以随时获取鼠标的坐标。如果对象与鼠标不同,我如何在给定坐标的情况下获取对象?
本质上,用户将 div 放在屏幕上的某个位置。由于 div 比鼠标光标宽,我需要知道 div 的 Angular 在什么对象上(而不是鼠标在什么上)。有没有办法在 JS 中引发 mousemove 事件 - 将坐标传递给它?
谢谢
只是为阅读此帖子的其他人提供的快速帖子脚本。虽然我没有选择 jquery 作为我的答案,但它可能是适合你的答案。对于我们想要提供的许多客户端工具,这似乎是一个非常灵活的功能丰富的解决方案。
最佳答案
没有办法引发 mousemove 并让它填充生成的目标元素属性,不。
有一种方法可以从任意坐标获取元素,但您不会很喜欢它。它涉及遍历每个页面元素并计算其尺寸(来自 offsetLeft/Top/Parent)以及哪些元素覆盖哪些其他元素(来自计算样式“position”和“z-index”)......本质上,重新实现的一部分浏览器自己的脚本布局引擎。如果你有带有“溢出”滚动/自动的元素,你需要做更多的计算。
如果您的情况有限(例如,您只能将 div 放在一组其他静态放置的 div 中的某处),它是可以管理的,但一般情况下非常困难而且一点也不有趣。 (也许某个地方有人已经将这样的功能打包到库或框架插件中,但我还没有遇到过。)
如果您能找到另一种不需要您执行此操作即可使拖放操作表现良好的方法,那么就执行此操作吧!
关于javascript - 引发 javascript 事件或从 XY 坐标获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/732294/