2013-11-25 89 views
0

我想要的動畫,其中一個矩形鱗片從1到3,然後應縮減到1 但是,美中不足的是比例應在左上角開始,並在右上角結束。規模右側

<rect x="10" y="10" width="40" height="20" 
     style="stroke: #000000; fill: none;"> 
    <animateTransform attributeName="transform" attributeType="XML" 
         type="scale" 
         from="1" to="3" 
         begin="0s" dur="10s" 
         additive="sum" 
      /> 
</rect> 

我想在純SVG標籤中實現這一點,沒有D3或raphael.js。這怎麼能實現? 我已經嘗試了很多方法,但沒有好的輸出。

+0

不太確定你所說的按比例代表什麼意思應該在右上角。你有一個可視化的例子來看看某個地方嗎? – Ian

回答

1

不太確定如果這是您以後的效果,您可能需要稍微澄清說明。但是,你可以結合動畫,並開始一個當另一個結束與開始標籤...的jsfiddle這裏... http://jsfiddle.net/kSYHH/http://jsfiddle.net/kSYHH/3/

<svg> 
    <rect x="10" y="10" width="40" height="20" 
     style="stroke: #000000; fill: none;"> 
    <animateTransform attributeName="transform" attributeType="XML" 
        type="translate" 
        from="0" to="40" 
        begin="animout.end" dur="3s" 
        additive="sum" 
        fill="freeze" 
     /> 

    <animateTransform attributeName="transform" attributeType="XML" 
        id="animout" 
        type="scale" 
        from="1" to="3" 
        begin="0s" dur="3s" 
        additive="sum" 
    /> 
    <animateTransform attributeName="transform" attributeType="XML" 
        type="scale" 
        from="3" to="1" 
        begin="animout.end" dur="3s" 
        additive="sum" 
        fill="freeze" 
    /> 


    </rect> 
</svg> 

它也值得其他人尋找到SVG庫像Raphael.js Snap.js Pablo.js使一些比較容易,但你確實提到你想要它純粹的SVG。

+0

謝謝你。你的代碼給了我90%的需求。看到這個http://jsfiddle.net/kSYHH/2/。最後,矩形不應該再出現,這就是我需要的。 – Sanjeev

+0

來幫忙,我正在做一個UFO路徑類動畫。在開始時,它會從左側進入框架,最後它會消失在無限遠處。 – Sanjeev

+1

爲了使它消失,在最後的動畫,你可以只添加填充=「凍結」,這樣修改小提琴http://jsfiddle.net/kSYHH/3/如果你正在做的更復雜的動畫,你可能想看看像拉斐爾,snap.svg,Pablo.js等 – Ian