有没有办法从应用了多个掩码的路径中生成新的独立路径?
我有一个<path>
通过包装<g>
父母应用的多个面具,如下所示:
这是不可见遮罩的最终图形:
源代码:
<svg>
<defs>
<mask id="primMask">
<path d="M 0 0 L 300 0 300 300 0 300 Z
M 100 0 A 50,50 0 0,0 100,100 A 50,50 0 0,0 100,0" fill-rule="evenodd" fill="white" />
</mask>
<mask id="anotherMask">
<path d="M 0 0 L 300 0 300 300 0 300 Z
M 30 0 A 10,10 0 0,0 30,60 A 10,10 0 0,0 30,0" fill-rule="evenodd" fill="white" />
</mask>
</defs>
<!-- These are just the circles with same paths
as masks to help visualize the masks shape/position -->
<g>
<path d="M 100 0 A 50,50 0 0,0 100,100 A 50,50 0 0,0 100,0" class="maskCopy" />
<path d="M 30 0 A 10,10 0 0,0 30,60 A 10,10 0 0,0 30,0" class="maskCopy" />
</g>
<!-- This is the main shape with masks -->
<g mask="url(#primMask)">
<g mask="url(#anotherMask)">
<path d="M 10 10 L 90 10 70 90 10 90 Z" class="myShape" />
</g>
</g>
</svg>
这就是我要问的原因:我需要myShape
对鼠标悬停它的可见部分应用不同的样式。目前,正如您可以在DEMO中测试的那样,当鼠标悬停在原始路径上时,样式会发生变化,掩码不会被计算在内。此外,我认为独立路径在更复杂的需求中提供了更大的灵活性,并且在添加更多掩码时性能更高。