snap.svg
で作業中に問題が発生しました。重複した入れ子になったSVG要素の操作
メインSVG要素をネストSVG要素として使用したいと思います。
<svg width="71" height="101" viewBox="0 0 71 101">
<defs>
<rect id="a" width="70" height="100" rx="5"/>
<mask id="d" width="70" height="100" x="0" y="0" fill="#fff">
<use xlink:href="#a"/>
</mask>
<rect id="b" width="70" height="100" rx="5"/>
<mask id="e" width="70" height="100" x="0" y="0" fill="#fff">
<use xlink:href="#b"/>
</mask>
<pattern id="f" width="6" height="5" x="-6" y="-5" patternUnits="userSpaceOnUse">
<use transform="scale(.5)" xlink:href="#tipstercard-c"/>
</pattern>
<image id="c" width="12" height="10" xlink:href="data:image/png;base64,..."/>
</defs>
<g fill="none" fill-rule="evenodd" transform="translate(.338 .194)">
<use fill="#212120" stroke="#FFF" stroke-width="4" mask="url(#tipstercard-d)" xlink:href="#a"/>
<use fill="url(#f)" fill-opacity=".1" stroke="#FFF" stroke-width="4" mask="url(#e)" style="mix-blend-mode:luminosity" xlink:href="#b"/>
<path fill="#FFF" d="M20.22 47.784v1.53h-1.344v2.923c0 .593.013.937.04 1.035a.42.42 0 0 0 .174.241c.091.064.2>...
私はfragments['card'].select('svg').clone();
ようSTHを実行しようとしましたが、これは、その結果:TypeError: Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.
私はfragments['card'].select('svg').toDefs();
以下も試してみましたが、これは、その結果:DOMException: Failed to execute 'appendChild' on 'Node': The new child element contains the parent.
のは、このネストされた1は、このような構造を持っているのいずれかを言ってみましょう
スナップではどうすればいいですか?私が使用するために必要なよう
EDIT は思え:
Surface.append(fragments['card']);
const Card = Surface.select('#card');
Card.toDefs();
const CardDef = Surface.select('#card');
CardDef.use().attr({...});
今これはfragments['card'].select('svg').toDefs();
動作しない理由の質問は、上記のコードではありませんか? fragments['card'].select('svg')
を直接使用できないのはなぜですか?
フラグメント['カード']とは何ですか?そのコードがなければ、やっかいです。それが実際にフラグメントであると仮定すると、clone()のようなメソッドはありません(基本的にselect/selectAll/setAttributeなど、Snapメソッドはありません)。 – Ian
@Ian fragments ['card']は断片です。 ' .select( 'svg').clone();を呼び出そうとすると、上記の' TypeError'が表示されます。必要に応じて実際のSVGを共有することもできますか? –