使い方 (応用編)

MapNJをカスタマイズする方法を紹介します。

Tips
  • ここで取り扱っているArea, Label, AreaIDなどに関しては「Design Source Setup」を参照してください ( Design Source Setup )
  • fill(塗り)およびstroke(線)を操作するオプションは、デザインソース自体にこれらが定義されている必要があります。

オプション

インスタンス生成時に第二引数に渡すオブジェクトに指定できるオプションの一覧です。

Sample: JavaScript
const mapnj = new('#your-mapnj', {
  activeAreaId: "foo",
  areaDefaultFillColors: {
    area1: "#123456",
    area2: "red"
  }
});

Global

Option NameTypeDefaultDescription
attributeTypeid | data-nameid
SVGにマッピングされた情報を読み取る属性を指定します。
Note
MapNJは操作対象のidもしくはdata-name属性の値を読み取ります。 デザインソフト上ではこれはレイヤー名に対応させることが可能です。Adobe Illustratorではidもしくはdata-nameを、Figmaではidにマッピングし書き出しを行うことが可能です。
attributeValueSeparator'-' | '_''-'
mapnjに渡す情報(attributeTypeで指定されている属性の値)をハイフンで区切るかアンダースコアで区切るかを指定します。
activeAreaIdString''
指定したAreaIDに対応したAreaがアクティブ化します。 空文字を指定した場合、Area全てが非アクティブ状態になります。

Area

Option NameTypeDefaultDescription
areaDefaultFillColorString#eee
全てのAreaのデフォルト時の塗り色を一括指定します。
Note
pages.advanced_usage.options.area.areaDefaultFillColor.tips
areaDefaultFillColorsObject{}
個々のAreaのデフォルト時の塗り色を指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったAreaはareaDefaultFillColorの指定を上書きします。
areaActiveFillColorString | undefinedundefined
全てのAreaのアクティブ時の塗り色を一括指定します。
Note
通常はデザイン時に指定した色がアクティブ色として割り当てられます。
areaActiveFillColorsObject{}
個々のAreaのアクティブ時の塗り色を指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったAreaはareaActiveFillColorの指定を上書きします。
areaDefaultStrokeColorString#fff
全てのAreaのデフォルト時の線色を一括指定します。
areaDefaultStrokeColorsObject{}
個々のAreaのデフォルト時の線色を個別指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったAreaはareaDefaultStrokeColorsの指定を上書きします。
areaActiveStrokeColorString | undefinedundefined
全てのAreaのアクティブ時の線色を一括指定します。
Note
通常はデザイン時に指定した色がアクティブ色として割り当てられます。
areaActiveStrokeColorsObject{}
個々のAreaのアクティブ時の線色を個別指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったAreaはareaActiveStrokeColorでの指定を上書きします。
transparentDefaultAreasBooleanfalse
全てのAreaのデフォルト時の塗り色と線色を透明にします。(またこの時、その他のエリアのカラー定義はすべて無効化されます。)
areaChangeSpeedNumber0.5
Areaの切り替わるスピードを指定します。(単位は秒)

Label

Option NameTypeDefaultDescription
labelDefaultFillColorString#555
全てのLabelのデフォルト時の塗り色を一括指定します。
labelDefaultFillColorsObject{}
個々のLabelのデフォルト時の塗り色を個別指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったLabelはlabelDefaultFillColorでの指定を上書きします。
labelActiveFillColorString#555
全てのLabelのアクティブ時の塗り色を一括指定します。
labelActiveFillColorsObject{}
個々のLabelのアクティブ時の線色を個別指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったAreaはlabelActiveFillColorでの指定を上書きします。
labelDefaultStrokeColorString#fff
全てのLabelのデフォルト時の線色を一括指定します。
labelDefaultStrokeColorsObject{}
個々のLabelのデフォルト時の線色を個別指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったAreaはlabelDefaultStrokeColorでの指定を上書きします。
labelActiveStrokeColorString | undefinedundefined
全てのLabelのアクティブ時の線色を一括指定します。
Note
通常はデザイン時に指定した色がアクティブ色として割り当てられます。
labelActiveStrokeColorsObject{}
個々のLabelのアクティブ時の線色を個別指定します。
Note
areaIDをキーに、cssカラーをバリューに指定します。ここで指定があったAreaはlabelActiveStrokeColorでの指定を上書きします。
transparentDefaultLabelsBooleanfalse
全てのLabelのデフォルト時の塗り色と線色を透明にします。(またこの時、その他のエリアのカラー定義はすべて無効化されます。)
labelDispAnim'static' | 'fadeIn' | 'fadeInUp' | 'fadeInRight' | 'fadeInDown' | 'fadeInLeft'fadeIn
初期化時のLabelの表示エフェクトを指定します。
noEventLabelsArray[]
Labelをクリックした時のイベントを無効にします。無効にしたいAreaID名を列挙します。
Note
通常Labelはクリックすると、対応するAreaをアクティブ化するイベントが割り当てられています。

Content

Tips
Contentは後述するOption Partsに含まれるパーツを指します。
Option NameTypeDefaultDescription
contentChangeSpeedNumber0.5
コンテンツ(data-mapnj="area-content")の切り替わるスピードを指定します。(単位は秒)

Background

Option NameTypeDefaultDescription
bgDefaultImageString''
全てのAreaが非アクティブの時にマップの背景に表示される画像のパス指定します。
bgImagesObject{}
Areaアクティブ時にマップの背景に表示される画像をAreaIdをキー、画像パスをバリューとし個別指定します。
bgBrightnessNumber100
背景画像の明るさを指定します。(単位はパーセント)
bgChangeSpeedNumber0.5
背景画像の切り替わるスピードを指定します。(単位は秒)

オプションパーツ

基礎パーツとは別に、オプションパーツを定義することが可能です。オプションパーツはHTMLタグ要素に特定のdata属性を与えます。

Sample: HTML

<!-- Click to make SVG active. -->
<button data-mapnj="selector" data-area-id="foo">Active Foo</button>

<!-- Click to make all SVGs default. -->
<button data-mapnj="reset-selector">Reset</button>

<!-- Appears when A is active. -->
<div data-mapnj="content" data-area-id="foo"></div>

<div>
  <svg id="mapnj-area-foo"></svg>
  <svg id="mapnj-area-bar"></svg>
</div>
Parts NameData AttributesDescription
Selectordata-mapnj="selector" & data-area-id="[AreaID]"
クリック時、data-area-idと一致するAreaIDを持つAreaをアクティブ化させます。
※ data-area-idに空文字を指定すると、後述のarea-reset-selectorと同じ結果になります。
ResetSelectordata-mapnj="reset-selector"
クリック時、全てのAreaを非アクティブ化させます。
Contentdata-mapnj="content" & data-area-id="[AreaID]"
ここで指定したdata-area-idと現在アクティブ化しているAreaのIDが一致していた場合、画面に表示されます。
※ data-area-idに空文字を指定すると、全てのAreaが非アクティブの時に表示されるコンテンツになります。

イベント

インスタンスのonメソッドを利用することで特定のタイミングで実行される関数を定義することが可能です。

Sample: JavaScript
const mapnj = new('#your-mapnj');

mapnj.on('AREA_CHANGE', (mapnj) => {
  console.log('instance:', mapnj);
  console.log('actiev area is :', mapnj.state.activeAreaId);
})
Event NameArgumentsDescription
AREA_CHANGEmapnj
選択中のエリアが変更された直後に実行されます。また選択中のエリアが無くなった場合にも実行されます。
AREA_CLICKmapnj
いずれかのエリアがクリックされた直後に実行されます。
AREA_MOUSEOVERmapnj
いずれかのAreaがマウスオーバーされた直後に実行されます。
AREA_MOUSEOUTmapnj
いずれかのAreaがマウスアウトされた直後に実行されます。
AREA_LABEL_CLICKmapnj
いずれかのLabelがクリックされた直後に実行されます。
AREA_LABEL_MOUSEOVERmapnj
いずれかのLabelがマウスオーバーされた直後に実行されます。
AREA_LABEL_MOUSEOUTmapnj
いずれかのLabelがマウスアウトされた直後に実行されます。
AREA_SELECTOR_CLICKmapnj
いずれかのArea Selectorがクリックされた直後に実行されます。
AREA_SELECTOR_MOUSEOVERmapnj
いずれかのArea Selectorがマウスオーバーされた直後に実行されます。
AREA_SELECTOR_MOUSEOUTmapnj
いずれかのArea Selectorがマウスアウトされた直後に実行されます。
AREA_RESET_SELECTOR_CLICKmapnj
いずれかのArea Reset Selectorがクリックされた直後に実行されます。

CSSクラスの利用

インスタンス生成時に第一引数に指定したHTMLタグ要素には、状態に応じたデザインクラスが付加されます。デザインクラスを利用することでMapNJに連動した独自のデザインパーツを作成することも可能です。

NameDescription
--mapnj-is-active-area_true
いずれかのAreaがアクティブ化している時に付加されます。
--mapnj-is-active-area_false
いずれのAreaもアクティブ化していない時に付加されます。
--mapnj-active-area_[AreaID]
アクティブ化されているAreaがある場合にそのAreaIDを最後尾文字列とし、付加されます。
--mapnj-hover-area_[AreaID]
マウスホバーされているAreaがある場合にそのAreaIDを最後尾文字列とし、付加されます。
© 2024 Masaaki Sumimoto.All rights reserved.