Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个SVG圆';s在没有圆圈的情况下投射阴影_Svg - Fatal编程技术网

创建一个SVG圆';s在没有圆圈的情况下投射阴影

创建一个SVG圆';s在没有圆圈的情况下投射阴影,svg,Svg,我想创建一个圆的阴影,同时保持圆心透明 我想不出怎么做。我试过使用口罩和过滤器,但它们似乎相互抵消。面具切断了过滤器 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" viewBox="0 0 200 200" >

我想创建一个圆的阴影,同时保持圆心透明

我想不出怎么做。我试过使用口罩和过滤器,但它们似乎相互抵消。面具切断了过滤器

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
  width="200" height="200" viewBox="0 0 200 200" >
  <defs>
    <filter id="blur">
      <feDropShadow dx="0" dy="0" stdDeviation="4.5"
          flood-color="black"/>
    </filter>
    <mask id="circle-mask" x="0" y="0" width="1" height="1">  
      <circle cx="75" cy="75" r="50" />  
    </mask>
  </defs>
  <circle cx="75" cy="75" r="50" style="mask: url(#circle-mask) filter: url(#blur)"/>
</svg>

我试着用一个圆作为剪贴画,但它会剪贴画圆以外的所有东西(我想剪贴画圆的内部)。我试过搞乱小组,把面具放在小组上,把过滤器放在圆圈上(反之亦然)。我试着把面具和过滤器做成一种风格


我哪儿也去不了。如何使圆圈内部透明?

只需将遮罩放大即可。你需要把你不想遮掩的部分变成白色,把你想遮掩的部分变成黑色


您可以通过扩展过滤器以一种紧凑的方式完成此操作。附加的feComposite/out将删除与原始形状重叠的任何内容(假设您的形状始终是完全不透明的)

正文{
背景:灰色;
}

太棒了。谢谢feComosite很酷-