2012-03-03 38 views
0

我有一个绝对定位的元素作为<body>的最后一个子元素。它被拖拽。我有这个元素的x,y位置,并且想要找出它下面的可视元素。检测被拖动对象下的元素

我听说过document.getElementFromPoint(x, y)方法。但显然这只会返回被拖动的元素,因为它是z-index堆栈顶部的元素。也因为这个元素的唯一父母是<body>这使事情变得更加困难。

有什么想法?

(PS。我需要一个纯JavaScript解决方案)。

+0

如果一个元素被拖拽到元素上,'dragenter'和'dragover'被触发。你可以使用这些。看看https://developer.mozilla.org/En/DragDrop/Drag_Operations – 2012-03-03 15:24:43

回答

0

我不确定你想要达到什么样的效果,但看看jQuery UI DraggableDroppable,最重要的是后者可以很容易地处理支持其他元素的元素的行为,拖过去。

+0

哦,我刚刚读了PS,对不起,如果是纯JS,那你的意思就是没有jQuery。 – 2012-03-03 15:18:20

1

根据你在做什么,拖放的状态并不那么热。 Jquery的实现只在某些情况下(不是我一直在开发的那个)有效,HTML5中的dragenter/dragover规范是一团糟。

如果您可以使用jQuery UI的解决方案,请这样做。否则,你必须维护一个符合可拖动目标的对象列表,并且在拖动对象时循环检查每个对象(我有一个相当复杂的拖放应用程序,它是我们正在做的事情,如果还有另一个可行的解决方案,我很乐意听到它)。