鼠标指针被高层元素挡住时,触发下层元素的鼠标事件

在做如下图这种拖拽效果的时候,遇到一个问题:

被拖拽的元素一直位于一个比较高的层,且一直跟随鼠标移动,这样会挡住鼠标,导致其无法触发下层元素的任何事件。这样下层的元素就无法响应拖拽的事件了。

 

 

受到这篇文章的启发:http://www.vinylfox.com/forwarding-mouse-events-through-layers/

最终实现的思路是,在mouseover事件中:

1.隐藏高层元素

2.根据坐标获取当前位置的最高层DOM

3.手动触发事件

element.hide();
var over=document.elementFromPoint(me.clientX,me.clientY)
//手动触发事件
if(over && over.onmouseenter) over.onmouseenter(me);
element.show();

  

 

posted @ 2014-12-08 16:08  桃子夭夭  阅读(1232)  评论(0编辑  收藏  举报