0

如果使用 D3 甚至可以做到这一点,我会遇到一些麻烦,更不用说如何做到了。

我有一个矩形元素,我已将 3 个事件处理程序附加到(“click”、“Mouseover”、“mouseout”)。这一切都很好,唯一的麻烦是我还向<g>放置在 rect 元素顶部的相同元素添加了一个文本元素。像这样:

<g>
    <rect x="204" y="204" width="204" height="204" style="fill: yellow; pointer-events: all; fill-opacity: 0.402592;" stroke="none" stroke-width="0" stroke-dasharray="15,15,15">
    <text class="word" x="306" y="306" text-anchor="middle" fill="black" style="fill-opacity: 1.00648;">Text Element</text>
</g>

我看到的问题是当鼠标仍在矩形上方但文本元素紧邻鼠标下方并且基本上“介于”鼠标和文本下方的矩形之间时,会触发 mouseout 事件。

有什么方法可以使文本对鼠标“不可见”?

我想如果我们在谈论 WinForms/WPF,我在 D3 中寻找的 analgulous 功能类似于IsHitTestable=false.

4

1 回答 1

0

不是很典型……就像我问解决方案本身提出的问题一样。

为了从鼠标事件中隐藏堆叠的元素,添加这个样式声明:

    .style("pointer-events", "none")
于 2013-06-26T07:58:12.373 回答