2017-09-06 46 views
0

与我在这里提到的问题不同,我试图用CSS获得动画效果,因为我将它应用于JS。我很高兴用动画过滤器实现同样的效果,但我不知道如何。SVG组的CSS动画

为什么我的CSS动画不能在SVG组上工作?如果我将它应用于SVG本身,它的确行得通。如何在这里通过示例在SVG中使用CSS对组进行动画处理。 FIDDLE here too.

.pulse { 
    background: blue; 
    width: 400px; 
    height: 100px; 
    animation-name: example; 
    animation-duration: 4s; 
    animation-iteration-count: infinite; 
} 

@keyframes example { 
    0% { 
    filter: brightness(1); 
    filter: contrast(1); 
    -webkit-filter: brightness(1); 
    -webkit-filter: contrast(1); 
    } 
    50% { 
    filter: brightness(0.1); 
    filter: contrast(0.1); 
    -webkit-filter: brightness(0.1); 
    -webkit-filter: contrast(0.1); 
    } 
    100% { 
    filter: brightness(1); 
    filter: contrast(1); 
    -webkit-filter: brightness(1); 
    -webkit-filter: contrast(1); 
    } 
} 
+0

如果您想在svg元素上使用动画,请检查https://css-tricks.com/guide-svg-animations-smil/。它可能会帮助您 –

+0

嗨@Ovidiu Unguru感谢您的链接。已经阅读并认为它不仅仅是我想要达到的目标。我有其他类应用到'g'元素,所以我不明白为什么这个不起作用。 – TheRealPapa

+0

[动画SVG组]的可能重复(https://stackoverflow.com/questions/41872057/animating-an-svg-group) – LuudJacobs

回答

0

您正在测试哪个浏览器?并非所有浏览器都支持SVG元素上的CSS过滤器。我的意思是这里的SVG子元素。

Firefox确实,但我认为它可能是唯一的。

应用于根元素<svg>的过滤器将在Chrome中工作,因为该元素将被有效地视为HTML元素。

http://jsfiddle.net/strdyy77/9/

要筛选<g>元素,你就需要使用SVG <filter>,但这些过滤元件的值不能用CSS动画。