RAPHAELIST

Raphael.jsは日本語ドキュメントが少ないので、初心者には敷居が高いのを何とかするブログ

【Raphael.js】エレメントをグループ化する方法

Setオブジェクトとpush関数

若干add関数とも似ていますが、まとめて属性指定などができるという点で少し違います。例えば、10個のRaphaelエレメント全てを赤色で塗る場合、add関数や通常のattr関数は10回、fill属性の指定が必要になります。これは面倒ですね。 ところが、Setオブジェクトを用いると、一括で一律の属性を与えることが出来ます。手順としては、グループの枠となるSetオブジェクトを準備し、そのsetオブジェクトが持つpush関数内でグループの内容を記載する感じです。すると、このSetオブジェクトはひとつのグループとして扱われ、グループ単位でattr関数などが使用できるようになるのです。 長くなりましたが、要はエクセルのグループ化と同じです。

 

実行結果

 

解説

例えば、着色以外にもグループ化したオブジェクトの移動などで威力を発揮しそうです。ただし、今回紹介したpushはSetオブジェクトの最も基本的な部分です。他にも関数はあるのですが、それはまた別の機会に。

Paper.set();

  • Paper: Raphaelの描画域
  • 返り値: Setオブジェクト

 

Set.push( drawing );

  • Set: 作成したSetオブジェクト
  • drawing: ここでRaphaelエレメントを描画
  • 返り値: 作成されたエレメント