2017-08-12 106 views
0

CSS允許改變SVG的顏色像這樣如何使用CSS動畫SVG的填充顏色?

.clr {fill: green;} 

但是當我申請動畫使用相同的填充屬性似乎沒有任何工作。我該怎麼辦?

<svg width="800" height="600" style="background-color:lightblue"> 

<circle class="clr" cx="610" cy="240" r="4" fill="gold" /> 

<style> 

.clr {animation: col 3s linear infinite;} 

@keyframes col { 
0%,71% {fill:none} 
72% {fill:black} 
75%,100% {fill:none} 
} 

</style> 
</svg> 

回答

0

嘗試將您的班級更改爲另一班級名稱,因爲我認爲顏色是保留字,所以我認爲它不工作。

+0

只是做了,但仍然沒有工作... – CeeJay

0

其預期的工作,我只是增加了circle半徑,改變了50X和50Y的位置,以顯示它,

.color {animation: col 3s linear infinite;} 
 

 
@keyframes col { 
 
0%,71% {fill:none} 
 
72% {fill:black} 
 
75%,100% {fill:none} 
 
}
<svg width="800" height="600" style="background-color:lightblue"> 
 
    <circle class="color" cx="50" cy="50" r="30" fill="gold" /> 
 
</svg>

+0

奇怪,但仍然是同樣的金色,沒有變化。它可能是瀏覽器優化問題? – CeeJay

+0

@CeeJay你正在使用什麼瀏覽器? – Muhammad

+0

mozilla firefox – CeeJay

0

剛纔在@keyframes部分添加fill:black。它變成綠色像這樣:

.color {animation: col 3s linear infinite;} 
 

 
@keyframes col { 
 
0%,71% {fill:none} 
 
72% {fill:green} 
 
75%,100% {fill:none} 
 
}
<svg width="800" height="600" style="background-color:lightblue"> 
 
<circle class="color" cx="610" cy="240" r="4" fill="gold" /> 
 
</svg>

,並且不希望使用.color {fill: green;}