STERFIELD

HTML5のインラインSVGとjQueryでお絵描き

HTML5のインラインSVGとjQueryでお絵描き

HTML5で利用可能なインラインSVGでは、

その場でSVGの内容をJavaScriptなどを使って書き換えることもできるので、

ブラウザのユーザーが、その場で意図的にSVGを変更することも可能です。

 

今回はそのインラインSVGの性質を利用して、

学習の目的で、簡単なお絵描きソフトを作ってみました。

↓こちらが作ってみたもの

DEMO

 

方法

HTML

SVGと色や描画方法などを設定するコントローラーを用意します。

SVGはwidthとheight、あと、JavaScriptでの操作がしやすいようにIDを設定します。

色はinputのHTML5から導入されたのtype=”color”を使ってみました。

描画方法として線画(LINE)とPAINT(塗りつぶし)をラジオボタンで選択できるようにしました。

あと、描き直せるように、CLEARボタンを設置しました。

 

 JavaScript(jQuery)

少し長いですが、基本的には次のような仕組みになっています。

  • SVG上でドラッグが開始されたら、まずコントローラーから色と描画方法を取得
  • ドラッグが開始された位置を取得し、SVGにpathを追加
  • ドラッグ中に各座標を取得し、SVGのパス情報(d属性の値)を随時更新
  • ドラッグが終わったら、パス情報の更新を終了
  • CLEARボタンが押されたら、SVG内を空にすることでpathを消去

ポイントとして、SVG内の要素は

のような形式では追加できないので(要素として追加できても、描画されない)、

次のような形式で追加する必要があります。(参考:jQueryでSVGを扱う – kamegu’s memo)

追加した後の属性は.attr()によって変更が可能です。

 

↓こちらのサイトを参考に作らせていただきました

svg要素の基本的な使い方まとめ

SVGの基本的な描画方法が詳しく説明されています

SVGの基本的な要素: line/polyline/polygon要素

SVGの線関係やスタイルについて詳しく説明されています

jQueryでSVGを扱う – kamegu’s memo

jQueryでSVGを扱う方法について説明されています

SVG Stroke Properties

線の端の処理など、Stroke系の属性について詳しく説明されています。

Author Profile

著者近影

NINOMIYA

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

SHARE

合わせて読みたい