2017-09-06 7 views
0

私がここで言及した質問とは異なり、私は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>要素に適用されたフィルタ(インライン展開されている)は、効果的にHTML要素として扱われるため、Chromeで動作します。

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

<g>要素をフィルタリングするために、あなたはSVG <filter>を使用する必要がありますが、これらのフィルタエレメントの値は、CSSでアニメーションすることはできません。

関連する問題