2016-04-05 23 views
3

私はクリックでSVG円をアニメーション以下のコード、持っている:ユーザーが円内にクリックしたときにそれが正常に動作しますが、私はプログラム的にアニメーションをトリガしたいHTMLボタンを使用せずにSVGアニメーションをプログラムでトリガすることはできませんか?

<circle id = "middle" cx="235" cy="235" r="100" stroke="yellow" stroke-width="0.5" fill="#ffcc00"> <animate begin="click" attributeName="fill" to="yellow" dur="1s"/> 

を。

私は$("#middle").click();を試しましたが、clickイベントが発行されてもアニメーションは発生しません。 (私も$("#middle").click(function() { audio.play(); });と設定して、音は大丈夫です)。

HTMLボタンを使用せずに、ユーザーのクリック(SVG上)をシミュレートすることによってSVGをアニメーション化する方法はありますか?

+0

( 'クリック'、機能(){})で$( "#真ん中")をしてみてください。ドキュメントの準備ができていることを確認してください –

+0

[SVG:ボタンをクリックした後にanimateTransformでクリックイベントをトリガーする](http://stackoverflow.com/questions/31856890/svg-trigger-a-click-event-on-animatetransform-ボタンをクリックした後) –

+0

$( "#middle")を提案していただきありがとうございます。( 'click'、function(){});しかし、私の問題は、 SVGをアニメーション化するための関数です。ボタンをクリックするだけでアニメーションをトリガーするのではなく、SVG自体をクリックすることでアニメーションをトリガーするのは嫌です。 –

答えて

1

アニメーションをプログラムで開始する場合は、beginElementを呼び出します。

<svg> 
 
    <circle id = "middle" cx="50" cy="50" r="25" stroke="yellow" stroke-width="0.5" fill="#ffcc00"> 
 
    <animate id="a" begin="click" attributeName="fill" to="yellow" dur="1s"/> 
 
</circle> 
 
</svg> 
 
<button onclick="document.getElementById('a').beginElement();">>Click Me!</button>

+0

答えを編集する前に(アニメーションをトリガするためにボタンを使用したとき)答えが明確になりました。私の質問は混乱して申し訳ありませんが、私は学んだことをうれしく思います!私のプログラムの間違いは、アニメーションがidを持たないことで、beginElement()を円のIDで使用しようとしましたm(__)m –

+0

私は最初のバージョンに戻しました。 –

関連する問題