STERFIELD

SVG.JSを使ったSVGファイルの読み込みと操作

SVG.JSを使ったSVGファイルの読み込みと操作

前回、jQueryを使ってSVGを読み込む方法をご紹介いたしました。

jQueryを使えば、確かにSVGの読み込み自体は簡単になりますが、

読み込んだSVGを操作するとなると、

SVGについての詳細な知識が必要になったり、アニメーションなどで一手間かけなければならなくなります。

 

以前、SVGを扱いやすくするJavaScriptライブラリとして、SVG.jsをご紹介いたしましたが、

このSVG.jsにはいくつかのプラグインが用意されていて、

テキストで記述したSVGコードをSVG.jsで扱える要素として読み込めるようになるsvg.import.jsというものが用意されています。

 

この機能を利用すると、jQueryとの合わせ技で、外部ファイルをSVG.jsで自由に扱える要素として読み込むことができますので、

その方法について、ご紹介いたします。

 

↓こちらがDEMOです。

DEMO

 

方法

手順

  1. jQueryおよびSVG.jsとそのプラグインをダウンロードして読み込む。
  2. HTMLで、SVGを描画する要素と、外部ファイルの読み込みに使う仮想要素を準備する。
  3. 外部ファイルを読み込み、読み込んだSVGをテキストに変換して変数に保存する。
  4. svg.jsでSVG要素を作成し、その中にsvg.import.jsを使ってテキスト化したSVGを要素として読み込む。

 

1. jQueryおよびSVG.jsとそのプラグインをダウンロードして読み込む

jQueryを公式サイトからダウンロードしてサーバーにアップロードして読み込むか、Google Hosted Librariesから読み込みます。

SVG.jsを公式サイトからダウンロードし、

svg.import.jsをこちらからダウンロードします。

svg.import.jsの利用には、svg.parser.jsの読み込みも必要になりますので、

svg.parser.jsをこちらからダウンロードします。

ダウンロードしてサーバーに配置したら、

以下の順番でHTMLに読み込みます。

 

2.HTMLで、SVGを描画する要素と、外部ファイルの読み込みに使う仮配置用要素を準備する

SVGを配置したい場所に、任意のIDをつけた要素を配置します。

さらに、外部SVGを読み込むときに使う、仮配置用の display: noneにした要素を任意のIDで配置します。

ここで読み込み用のSVGを配置するのは、SVGを読み込むときに、一時的に配置したSVGが画面上に表示されるのを防ぐためです。

 

3. 外部ファイルを読み込み、読み込んだSVGをテキストに変換して変数に保存する

ではいよいよ、JavaScriptを記述していきます。

まず仮配置用の要素に、jQueryの. load()を使って、外部のSVGファイルを読み込みます。

そして読み込んだSVGを.html()でHTMLとして一度変数に保存し、

保存したHTMLを仮配置用の要素に、.text()を使ってテキストとして上書きし、

そのテキストを変数に保存します。

変換が終わったら、仮配置用の要素は.html(“”)で空の状態に戻しておきます。

 

4. svg.jsでSVG要素を作成し、その中にsvg.import.jsを使ってテキスト化したSVGを要素として読み込む

ここからSVG.jsによる記述で、実際にSVGを描画・操作します。

「SVG(“SVGを実際に配置する要素のid名”)」でSVGを準備し、

「draw.svg([テキストのSVGコードを保存した変数])」でテキストのSVGコードをSVGの要素として描画します。

 

これでSVG.jsの要素として、外部のSVGファイルを読み込むことが出来ましたので、

あとはSVG.jsで用意されたプロパティを使って自由に操作ができます。

 

特にアニメーションさせたいときはSVG.jsが重宝しますので、ぜひご利用ください。

 

参考サイト

svg.js

wout/svg.import.js · GitHub

Author Profile

著者近影

NINOMIYA

Webデザイナー兼コーダー出身のフロントエンド開発者です。 UXデザインやチーム開発の効率化など、勉強中です。

SHARE

合わせて読みたい