首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SVG中绘制带有下拉阴影的圆可裁剪边缘

在SVG中绘制带有下拉阴影的圆可裁剪边缘
EN

Stack Overflow用户
提问于 2012-09-26 06:38:17
回答 2查看 10.4K关注 0票数 11

我试图在SVG中画一个带有阴影的简单圆形,但由于某种原因,顶部和左侧边缘被裁剪了。这在Chrome和Safari中都会发生。

我正在使用我在w3schools教程SVG Drop Shadows中找到的代码,经过修改后使用了一个圆圈。

代码语言:javascript
复制
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <defs>
    <filter id="f1" x="0" y="0" width="200%" height="200%">
      <feOffset result="offOut" in="SourceAlpha" dx="2" dy="2" />
      <feGaussianBlur result="blurOut" in="offOut" stdDeviation="1" />
      <feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
    </filter>
  </defs>
  <circle r="30" cx="50" cy="50" style="stroke:gray; fill:aliceblue; stroke-width:3px" filter="url(#f1)" />
</svg>

我试着移动圆圈,增加SVG容器的大小,等等,但都得到了同样的结果。我还尝试用谷歌搜索各种dropshadow教程,并总是修改示例代码以使用圆圈。每次的结果都是一样的。

那么,如何在SVG中绘制一个带有dropshadow的简单圆呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-26 08:26:28

原来问题出在过滤器的偏移量上。圆圈周围没有足够的填充来容纳新添加的滤镜。要添加此属性,请使用以下属性(根据需要进行调整):

代码语言:javascript
复制
<filter id="f1" x="-20%" y="-20%" width="200%" height="200%">

X和y将过滤器的框向上放置,并向左放置一些,这是之前缺少的。宽度和高度然后指定框的大小。在这种情况下,200%是过度杀伤力,但对于较大的阴影可能是必要的。

票数 17
EN

Stack Overflow用户

发布于 2012-09-26 08:31:44

替换为:<filter id="f1" x="0" y="0" width="200%" height="200%">

关于这个:<filter id="f1" x="-40%" y="-40%" height="200%" width="200%">

请参见示例:http://jsfiddle.net/sRfck/1/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12592129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档