2013-04-20 98 views
1

在JavaScript中,是否有可能获取元素悬停在其上的所有元素的列表?我使用一个元素作为游标,并且当光标元素悬停在每个其他元素上时,我希望页面中的其他元素加下划线。获取特定元素下的所有元素

<div id="cursor">|----------|<br/>|----------|<br/>>I'm a spaceship!><br/>|----------|<br/>|----------|<br/></div> 
<div id="hi">Try to select this text</div> 
<p>I want to automatically highlight all elements that the cursor element hovers over.</p> 
<p>Here's an element.<p> 

http://jsfiddle.net/fU3Qn/

+0

我刚刚发现了一个类似的问题,但我不确定它是否是重复的:http://stackoverflow.com/questions/4230029/jquery-javascript-collision-detection – 2013-04-20 03:50:29

回答

1

:hover伪类适用于任何你光标悬停。其次,如果你使用一个元素作为你的光标,你可以通过使用pointer-events: none规则来指示你的鼠标通过它。请注意,此属性的support outside of SVG有限。

除此之外,唯一的替代方法是使用类似elementFromPoint的东西,但是这将只返回一个元素。我不确定这会对你有用,因为你的鼠标始终受到元素的阻碍。

关于elementFromPoint路由,您可以暂时隐藏自定义光标以获取鼠标下的下一个元素,然后重新打开自定义光标,如下面的注释所示。

+0

对于'elementFromPoint',你可能可以在调用之前将'display'设置为'none'并在之后恢复其先前的值。 – icktoofay 2013-04-20 04:53:00

+0

@icktoofay有趣的想法。这可能很有用。 – Sampson 2013-04-20 13:35:59