Snap SVG&物质阴影

时间:2016-08-13 11:23:15

标签: css svg shadow snap.svg material

我想在我的SVG元素上使用Google Material阴影。 我正在使用Snap SVG,我找到了一种在元素上使用阴影滤镜的方法:

element.attr({
    filter : s.filter(Snap.filter.shadow(0, 19, 38, 'black', 1))
});

我无法找到的是我必须为每个材质阴影输入的设置。

我尝试了什么:
我找到了几个使用CSS的this代码,它们使用CSS进行了物质阴影,我尝试从它们中获取盒子阴影设置并使用相同的设置,但我的设置要大得多。

根据我的研究,box-shadow采用像素设置,根据Snap SVG文档,Snap SVG也是如此。

我似乎无法理解为什么两者都以像素为单位进行设置,但Snap SVG只是更多。

- 我也尝试了一些试验和错误,但我无法想象找出所有不同材质阴影的所有不同设置需要多长时间。

所以为了澄清一点,我真正想知道的是每个Google Material Shadow的Snap SVG阴影滤镜设置。
原因是我想要一个在阴影之间循环的按钮。

感谢您的帮助。

修改

实际上,看起来我的不透明度是错误的 我的过滤器现在更像是物质阴影 但是,我注意到使用CSS for Material阴影的codepens使用多个box-shadow。我怎么能用Snap SVG做到这一点? (有多个阴影)

所以我做的是在SVG中定义几个def 我发现了一个带有Material Shadows的SVG,它帮助我为每个级别的阴影定义我的defs 然后我按照@Ian建议并使用了Snap SVG的defs。

1 个答案:

答案 0 :(得分:0)

我不完全确定你的描述为什么你仍然不能使用你发现的css风格。没理由你不能通过切换按钮来切换样式,除非我误解了什么。

它在Snap中有点繁琐的复杂过滤器,但是如果你只是从常规svg标记中找到一个,你可以通过'解析'svg标记,或者使用defs语句中已有的那些来使用它,例如

例如,您可以转到这样的页面... filter codepen抓取创建的标记,然后将其放入defs语句或解析('markup')它。

然后你可以像......一样使用它。

element.attr({ filter: Snap('#myFilterId') });

例如jsfiddle使用上面的codepen创建并粘贴到'defs'语句并与上面的行一起使用。