我已经使用 jQuery 在 Raphael 元素上实现了 pointer-events: none
,如下所示:
var raphaelElement = Raphael.ellipse(x,y,w,h);
$(raphaelElement.node).css({'pointer-events': 'none'});
这工作正常,但当然在 IE8 中,Raphael 使用 VML 而不是 SVG,并且此解决方案失败。
有没有人有其他解决方案来使 Raphael 元素忽略事件。
最佳答案
在 IE8(及更早版本)上实现此功能的唯一方法是实际捕获事件,并在事件处理程序中:
- 隐藏元素 (
.style.display='none'
) - 使用
elementFromPoint()
查找“捕手”下方的下一个元素的方法 - re-create and fire the event on that element (另见 this)
- 再次显示捕手 (
.style.display=''
)
这种通用方法(减去第 3 步)已在 IE 上使用了 10 多年,以允许用户将带有它的元素直接拖动到光标下方,同时仍然检测下方可能放置目标元素的“鼠标悬停”。
关于javascript - 指针事件 : none VML raphael solution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10951868/