如果它被碾过,我可以得到一个物体。我可以在任何给定的时间获得鼠标的坐标。如果给定一个对象的坐标 - 如果它们与鼠标不同,我如何得到它?
实际上,用户正在屏幕上某个地方放弃div。由于div比鼠标光标宽,我需要知道div的角落是什么对象(而不是鼠标的结束)。有没有办法在JS中引发mousemove事件 - 传递坐标?
感谢
为阅读此帖的其他人提供快速发布的帖子。虽然我没有为我的答案选择jquery,但它可能是你的答案。对于我们想要提供的许多客户端工具来说,这似乎是一个非常灵活的功能丰富的解决方案。
答案 0 :(得分:1)
没有直接回答您的问题,但您是否尝试使用jQuery UI等javascript库?它提供了良好的拖放支持和你可以做你所谈论的各种事情......例如。你可以使你的页面的某些元素可拖动和放大其他可投放的&然后在用户拖动元素时处理事件。它为dropables提供了一个容差,包括'touch'(以及'fit','intersect','pointer'),这样你就可以处理你的可丢弃目标的'over'事件。你会得到一个事件处理程序,当div的一角在给定元素上时触发。此事件处理程序为您提供对被拖动元素以及被拖动元素的引用。 (有点落后于你如何提出问题,但应该可以用来解决同样的问题)。
希望有所帮助...
答案 1 :(得分:1)
没有办法提高鼠标移动并让它填充生成的目标元素属性,没有。
有一种方法可以从任意坐标中获取一个元素,但你不会喜欢它。它涉及遍历每个页面元素并计算其尺寸(来自offsetLeft / Top / Parent)以及哪些元素覆盖哪些其他元素(来自计算出的样式'position'和'z-index')...基本上,重新实现部分浏览器自己的脚本布局引擎。如果你有'溢出'滚动/自动的元素你还有更多的计算要做。
如果你有一个有限的案例(例如,你只能将div放在一组其他静态定位的div中),它可以管理,但一般情况很难,也没有乐趣。 (也许有人在某个地方已将这样的功能打包到库或框架插件中,但我还没有遇到过。)
如果你能找到另一种方法让你的拖拽表现得很好而且不需要你这样做,那就去做吧!
答案 2 :(得分:0)
要从它的坐标中获取对象,有document.elementFromPoint(x,y)
。
Quirksmode的compatibility table表明它可以在最新的浏览器上使用。