色を変更し、すべての円を長方形に置き換えるなどの変更を行うには、既存のSVGドキュメントを読み込む必要があります。
javascriptを使用してSVGノード、またはRaphael拡張機能またはjQuerySVGにアクセスする方法についての記事を読みました。
私はjQuerySVGを使用することにしました。なぜなら、(私が読んだドキュメントの1つに書かれている:)既存のロードされたSVGをRaphaelで変更することはできないからです。それが本当かどうかはわかりません。
一方、いくつかのウェアが書かれました:jQuery SVGプラグインは時代遅れですか?!
これが正しいかどうかはわかりません。
現在、jQuerySVGプラグインを使用してSVGをロードしています。SVGは、次のような多くのサークルで構成されています。
<svg version="1.1" width="" height="">
<rect class="background" x="0" y="0" width="136" height="136" style="fill:white"/>
<circle class="dot" cx="10" cy="10" r="2"/>
<circle class="dot" cx="14" cy="10" r="2"/>
<circle class="dot" cx="18" cy="10" r="2"/>
<circle class="dot" cx="22" cy="10" r="2"/>
[...]
<style>
.dot {fill:#000000;}
</style>
</svg>
これで、次のことが可能になります。1。)クラスdot
を変更してすべての円の色を変更し、2。)すべての円を長方形に置き換えます。
最初の目標を達成するために、私は次svg.style()
のように使用します。
mainSVG = $("#placehoplder").svg('get');
mainSVG.load(data, {addTo: true, changeSize: false});
mainSVG.style('.dot {fill:'#f4a200'}');
これは機能しますが、SVGに追加のスタイル要素/ノードを追加します。
したがって、最初の質問は、既存のスタイル要素を変更/上書きする方法です。
2番目の目標を達成するために:私には、これをどのように処理するかがわかりません。
一般的にSVG要素を選択する方法がわかりません。グーグルを使用して、私はまだ何度も同じstackoverflowの質問を見つけます、それは私を助けません。また、jQuery SVGのドキュメントは、私の知る限りでは役に立ちません。(基本が欠けているため)
たとえば、すべての円の半径を変更するこの簡単なテストは機能しません。
allCircles=$('*[class~="dot"]');
mainSVG.change(allCircles,{r:10});
したがって、2番目の質問は次のとおりです。SVG要素のグループを(クラスまたは要素タイプごとに)選択して変更する方法(またはトラフを繰り返す必要がある場合がありますか?)
ありがとうございました。