<object>
タグに読み込まれた SVG ファイルがあります。このsvg内のいくつかの要素を操作するためにjavascriptを使用しています。例えば:
var theSvgXml = document.getElementById('theObject').contentDocument;
theSvgXml.getElementById('theElementId').style.display = 'inline';
theSvgXml.getElementById('theElementId').style.fill = 'red';
theSvgXml.getElementById('anotherElement').style.display = 'none';
これは完全に機能し、すべてがうまくいきました。しかし、キャンバスでも同じことができるかどうか疑問に思っています。キネティック js、ファブリック js、canvg js についても読んだことがあります。ファイル ディレクトリ、xml、または画像を使用して、svg ファイルをキャンバスにロードするさまざまな方法を見てきました。
しかし、この svg ファイルをキャンバスに描画した後、要素を ID で操作できますか?
SVG は Adobe Illustrator を使用して作成され、各レイヤーまたはグループには ID が与えられ、css セレクターを使用してアクセスできます。繰り返しますが、これはキャンバスに SVG を描画した後にキャンバスで実行できますか。(SVGは巨大であり、キャンバスソリューションについて考えている唯一の理由は、svgがイラストレーターの乗算効果を表示して影を作成しないためであることに注意してください)
どんな助けでも大歓迎です。ありがとうございました。
コードスニペット:
<g id="Pockets">
<g id="Pen__x26__Radio_Arm_Pocket" class="st791"> … </g>
<g id="Pen_Pocket_Arm" class="st791"> … </g>
<g id="Card_Zipper_Arm_Pocket" class="st791"> … </g>
<g id="Radio_Pocket_Arm_Pocket" class="st791"> … </g>
<g id="Angled_Chest_Pocket_Right" class="st791"> … </g>
<g id="Angled_Chest_Pocket_Left" class="st791"> … </g>
<g id="Angled_Chest_Pocket_left_and_Right" class="st791"> … </g>
<g id="Chest_Pocket_Right" class="st791"> … </g>
<g id="Chest_Pocket_Left" class="st791"> … </g>
<g id="Chest_Pocket_left_and_Right" class="st791"> … </g>
<g id="Tool_Pocket" class="st791"> … </g>
<g id="Cargo_x2F_Mobile_Pocket_Velcro" class="st791"> … </g>
<g id="Cargo_x2F_Mobile_Pocket_Zip" class="st791"> … </g>
<g id="Cargo_x2F_Mobile_Pocket_Button" class="st791"> … </g>
<g id="Cargo_Pocket_Velcro" class="st791"> … </g>
<g id="Cargo_Pocket_Button" class="st791"> … </g>
<g id="Cargo_Pocket_Zip" class="st791"> … </g>
<g id="Back_Pocket_Right_Velcro" class="st791"> … </g>
<g id="Back_Pocket_left_Velcro" class="st791"> … </g>
<g id="Back_Pocket_left_and_Right_Velcro" class="st791"> … </g>
<g id="Back_Pocket_Right_Velcro_Button" class="st791"> … </g>
<g id="Back_Pocket_left_Velcro_Button" class="st791"> … </g>
<g id="Back_Pocket_left_and_Right_Button" class="st791"> … </g>
<g id="Back_Pocket_Right_Zip" class="st791"> … </g>
<g id="Back_Pocket_left_Zip" class="st791"> … </g>
<g id="Back_Pocket_left_and_Right_Zip" class="st791"> … </g>
</g>
Adobe Illustrator からファイルをエクスポートした後の xml スニペットからわかるように、各グループには ID が設定されています。これらをオブジェクトとしてキャンバスに保存するにはどうすればよいですか (Fabrics.js が getObjects() メソッドの使用を提案しているように)? これを達成する方法はありますか?はいの場合、これらのグループを参照するにはどうすればよいですか? また、影は重要な問題であり、フラッシュを使用したくありません。ありがとう