如何在SVG中将笔划用作剪切路径?

时间:2017-09-01 08:18:50

标签: svg clip-path

我有一条如下路径:

<path class="path" d="M0,550L0,366.6666666666667C0,366.6666666666667,95.43389463154384,198.61111111111114,143.31860620206734,183.33333333333337C191.20331777259085,168.0555555555556..."></path>

这在我的页面上显示如下:

Path

我希望这是我显示一组矩形的剪切路径。我现在看起来像这样:

Path as clipPath

但是,我希望它仍然是一条2px线,当它进入新<rect>的领域时会改变颜色。我目前正在考虑通过某种方式将路径划分为<clipPath>,但我也可以采用其他方法来实现这一目标。

1 个答案:

答案 0 :(得分:4)

对于这种情况,<clipPath>是错误的方法。正确的解决方案是使用<mask>

<svg width="500" height="240">

  <defs>
    <mask id="graph">
      <path d="M 0,150 L 100,20 L 200,210 L 300,100 L 400,130 L 500,50"
            fill="none" stroke="white" stroke-width="4"/>
    </mask>
  </defs>

  <g mask="url(#graph)">
    <rect y="0" width="500" height="60" fill="red"/>
    <rect y="60" width="500" height="60" fill="blue"/>
    <rect y="120" width="500" height="60" fill="green"/>
    <rect y="180" width="500" height="60" fill="yellow"/>
  </g>
</svg>