6

我有一个带有透明背景图像集的顶层,并且希望忽略所有指针事件。所以最初我的这个设置<div style="pointer-events"></div>很好用,但后来我发现 IE 不支持这个。

进一步阅读我发现有几个地方说 IE 确实支持<svg>with pointer-events:none,但我无法让它工作(我以前从未使用过 SVG 标签,所以我可能做错了)。

请看这个我希望实现的非常简化的小提琴。http://jsfiddle.net/AGVTM/

4

2 回答 2

4

根(最顶部)<svg>元素将不支持pointer-events: none. 这背后的原因是它可能是一个安全漏洞,您可以使用 SVG 覆盖 Facebook Like 按钮,并让点击通过,如本示例http://jsfiddle.net/rVxTn/

如果 SVG 元素不是根元素,则应通过单击。此示例应适用于 IE9(未经测试)

http://jsfiddle.net/DLEsn/

但是,这并不能解决您的问题,因为您不能将 HTML 元素放入 SVG 元素中。

我以前多次遇到过这个问题,我不得不以不同的方式解决它。我建议您使用实际问题(可能还有屏幕截图)打开一个新问题,看看如何解决这个问题。

于 2012-12-20T17:37:24.370 回答
1

根本原因

绝对定位的 SVG 不会将点击传播到 IE9 中的 HTML 元素。

请参阅此 webkit 测试用例讨论:REGRESSION(r66731): pointer-events are broken in some cases和相应的最小测试用例意思是,有趣的是,这个错误几乎也进入了 WebKit,但及时得到了修复。

在 IE 9 的情况下,结果:

IE 9.0.8112.16421 = 未通过测试 1:浮动;通过测试 2:内联

解决方法

请参阅有关模拟的 StackOverflow 帖子pointer-events: none—<a href="https://stackoverflow.com/questions/9385213/how-to-make-internet-explorer-emulate-pointer-eventsnone">如何让 Internet Explorer 模拟指针事件:没有任何?

他们特别讨论了非 SVG 前端元素,但是将点击转发到底层元素的技术也可能适用于您的情况。

于 2014-06-06T23:38:00.857 回答