【发布时间】:2016-02-17 00:23:02
【问题描述】:
我一直在网站上使用SVGs,我一直在尝试让filters 工作,但我似乎无法做到。
问题是,一旦我应用定义的filter,svg 就会完全消失。我尝试应用 filter 内联,看看它是否有效,如下所示:
<symbol id="circle" viewBox="0 0 400 209.603" filter="url('#blur-filter')">
...
</symbol>
但没有成功。
最终,我的目标是我能够通过 CSS 应用 filters,但我似乎无法让它工作,这是我第一次真正玩弄 @987654329 @s,所以我不知道我是否犯了一些明显的错误。
代码:
.svg-circle:hover {
filter: url("#blur-filter");
}
.svg-grey {
fill: #333;
}
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
<defs>
<filter id="blur-filter">
<feGaussianBlur in="SourceGraphic" stdDeviation="2" />
</filter>
<symbol id="circle" viewBox="0 0 400 209.603">
<circle cx="100" cy="100" r="100" />
</symbol>
</defs>
</svg>
<svg>
<use xlink:href="#circle" class="svg-circle svg-grey"/>
</svg>
我希望在将鼠标悬停在元素上时应用 filter。我的另一个问题是如何将它与 CSS transitions 结合起来,以便逐渐应用 blur,就像其他 css3 transitions 一样。
我还希望过滤器是全局的,因此可以在需要时在多个 svg 图像中重复使用它们,因此定义一次,然后重复使用。
我还创建了一个Codepen 来演示我的问题。
【问题讨论】: