我想为一个SVG图片分配一个SVG掩码。我可以使用掩码上的ID来实现这一点,如下所示:
<svg id="svg1" width="5cm" height="5cm" viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<mask id="mask">
<circle cx="100" cy="100" r="100" fill="white"></circle>
</mask>
</defs>
<rect x="0" y="0" width="200" height="200" fill="red" mask="url(#mask)"></rect>
</svg>
但是我希望多次加载此SVG,并在SVG标签中使用不同的ID。因此,我将生成'#mask' ID的副本。使用多个ID是无效的代码。因此,我想使用类来引用适当的遮罩。这意味着我不能使用mask=url()
技术。
<svg id="svg2" width="5cm" height="5cm" viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<mask class="mask">
<circle cx="100" cy="100" r="100" fill="white"></circle>
</mask>
</defs>
<rect x="0" y="0" width="200" height="200" fill="red" mask="url(can't use this)"></rect>
</svg>
完整的故事/背景: 我实际上正在为Joomla制作一个SVG图像幻灯片模块。这个PHP生成了一个包含JavaScript、CSS和SVG的模块。我使用JavaScript来动画化遮罩。 实际上,我已经使用唯一的ID使其工作。我只是想知道是否有一种方法可以分配遮罩给一个元素,而不是引用ID。我可能想这样做是因为我的代码变得越来越难以阅读,因为我必须对每个唯一的ID在我的JavaScript/SVG和CSS中使用一些PHP。