我試圖使用SVG <set>
標記對動畫進行動畫翻轉,但即使指定了dur =「1s」,轉換也是即時的(在Firefox,Safari,Opera和Chrome中)。SVG <set>標記的dur屬性不生成
<html>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red">
<set attributeType="CSS" attributeName="fill" to="green" begin="mouseover" end="mouseout" dur="1s" />
</circle>
</svg>
</body>
</html>
我能做到,我想用兩個<animate>
標籤的效果,但我希望能夠以應用可能,我想保留不同的初始顏色過渡到多個元素(此方法需要我指定第二個動畫標籤中的初始顏色爲「紅色」)。
<html>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red">
<animate attributeType="CSS" attributeName="fill" to="green" begin="mouseover" dur="1s" fill="freeze" />
<animate attributeType="CSS" attributeName="fill" to="red" begin="mouseout" dur="1s" fill="freeze"/>
</circle>
</svg>
</body>
</html>
在第一代碼段的<set>
標籤保留了初始顏色,但過渡不顯示動畫。如果我對w3規範的理解是正確的,那應該是 - 這看起來像是一個特定於瀏覽器的錯誤,還是我誤解了w3規範?有沒有更好的方法來解決這個問題?
攝製情況:http://jsfiddle.net/4xx5p/(這是在Safari以及Firefox的真) – Phrogz 2012-04-10 00:59:59
感謝您驗證它不會在Safari工作,要麼;我剛剛在Opera和Chrome中進行了測試,我也在那裏得到了相同的行爲。 – yasashiku 2012-04-10 03:55:33