Pav*_*lin 11 html css svg css3
我一直SVG
在网站上玩s,我一直在尝试filter
上班,但我似乎无法做到正确.
问题是,svg
一旦我应用了一个定义的,它就完全消失了filter
.我试图应用filter
内联,只是为了看它是否有效,就像这样:
<symbol id="circle" viewBox="0 0 400 209.603" filter="url('#blur-filter')">
...
</symbol>
Run Code Online (Sandbox Code Playgroud)
但没有成功.
最终,我的目标是我可以filter
通过CSS 应用s,但我似乎无法让它工作,这是我第一次真正玩SVG
s,所以我不知道如果我犯了一些明显的错误
.svg-circle:hover {
filter: url("#blur-filter");
}
.svg-grey {
fill: #333;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
filter
当我将鼠标悬停在元素上时,我想要应用它.我的另一个问题是如何将其与CSS结合使用transitions
,以便blur
逐渐应用,就像其他css3一样transitions
.
我还希望过滤器是全局的,因此可以随时在多个svg
图像中重复使用它们,因此请定义一次,然后重复使用.
我还创建了一个Codepen来演示我的问题.
删除您的style="display:none"
并添加width:0
到您的第一个svg
.svg-circle:hover {
filter: url("#blur-filter");
}
.svg-grey {
fill: #333;
}
svg:first-of-type {
width:0
}
Run Code Online (Sandbox Code Playgroud)
<svg xmlns="http://www.w3.org/2000/svg">
<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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2168 次 |
最近记录: |