怎么获取鼠标当前位置下的DOM元素,或者判断当前位置有没有元素。

橙子呀
  • 176

怎么获取鼠标当前位置下的DOM元素的ID,或者判断当前位置有没有DOM元素?

鼠标是有图片跟随的,是用onmousemove方法写的,不知道会不会影响获取鼠标当前位置的DOM元素。

想过用碰撞的方法来实现,不过页面中DOM元素太多,碰撞的话只能一对一。跟随鼠标移动的图片占一个。那么剩下来的DOM元素怎么装入第二个位置,用数组吗.......不会,或者算法。。求指点。

回复
阅读 9.9k
4 个回答
水不凉
  • 4.8k

当前位置当然一定会有 DOM 元素啦,至少 body 和 document 元素是充满整个窗体空间的啊。哦,也可能你把 mousemove 绑定在 window 上,mousedown 时鼠标移出窗口也是会触发 mousemove 的,这个倒是要注意一样。

关键 API: document.elementFromPoint

var element = document.elementFromPoint(x, y);

嗯,你给一个 x,y 坐标,这个 API 就给你返回该点最上层的 DOM 元素。Caniuse.com 上显示这个 API 可是兼容到 IE6 呢!这么好用的 API 居然鲜有人知。elementFromPoint 兼容性

貌似鼠标跟随的元素就在最上层?没关系,给这个图片设置 css point-events: none,让它对鼠标形同虚设,这样 document.elementFromPoint 就能返回你要的 DOM 啦。

给document绑定onmousemove事件,然后用event.currentTarget判断?
嗯...没了解过这样的需求

某熊猫桑
  • 16.1k

用事件委托应该可以实现。具体就是让父元素监听onmoseenter或者其他事件,当子元素触发时父元素判断就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏