MapNJ v0.2.0
!!This page contains parts that have not yet been translated from Japanese.!!

Advanced Usage

I will introduce methods to customize MapNJ.

  • The Area, Label, and AreaID mentioned on this page refer to those shown in the "Design Source Setup" section. 参考
  • To use options related to "fill," the corresponding parts must have "fill" set during the design phase.
  • To use options related to "stroke," the corresponding parts must have "stroke" set during the design phase.

Options

This is a list of options that can be specified in the object passed as the second argument when creating an instance.

Global

Option NameTypeDefaultDescription
attributeTypeid | data-nameid SVGにマッピングされた情報を読み取る属性を指定します。
MapNJはSVG内部要素のidもしくはdata-name属性を読み取ります。 Adobe Illustratorではidもしくはdata-nameが、Figmaではidが指定できます。 デザインソースに合わせて設定してください。
activeAreaIdString(空文字) 指定したAreaIDに対応したAreaがアクティブ化します。 空文字を指定した場合、Area全てが非アクティブ状態になります。

Area

Option NameTypeDefaultDescription
areaDefaultFillColorString#eee 全てのArea非アクティブ時塗り色を一括指定します。
MapNJのカラー指定系オプションは、CSSカラー指定と同じものが利用できます。

- Hexカラーコード(例: #FF0000)
- RGB値(例: rgb(255, 0, 0))
- HSL値(例: hsl(0, 100%, 50%))
- カラーキーワード(例: red, green, blue)
areaDefaultFillColorsObject{} Area非アクティブ時塗り色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったAreaはareaDefaultFillColorでの指定を上書きします。
areaActiveFillColorString | undefinedundefined 全てのAreaアクティブ時塗り色を一括指定します。
デフォルトではSVG上でデザインした色がアクティブ色として割り当てられます。
areaActiveFillColorsObject{} Areaアクティブ時塗り色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったAreaはareaActiveFillColorsでの指定を上書きします。
areaDefaultStrokeColorString#fff 全てのArea非アクティブ時線色を一括指定します。
areaDefaultStrokeColorsObject{} Area非アクティブ時線色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったAreaはareaDefaultStrokeColorでの指定を上書きします。
areaActiveStrokeColorString | undefinedundefined 全てのAreaアクティブ時線色を一括指定します。
デフォルトではSVG上でデザインした色がアクティブ色として割り当てられます。
areaActiveStrokeColorsObject{} Areaアクティブ時線色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったAreaはareaActiveStrokeColorsでの指定を上書きします。
areaChangeSpeedNumber0.5Areaの切り替わるスピードを指定します。(単位は秒)

Label

Option NameTypeDefaultDescription
labelDefaultFillColorString#555 全てのLabel非アクティブ時塗り色を一括指定します。
labelDefaultFillColorsObject{} Label非アクティブ時塗り色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったAreaはareaLabelDefaultFillColorでの指定を上書きします。
labelActiveFillColorString#555 全てのLabelアクティブ時塗り色を一括指定します。
labelActiveFillColorsObject{} Labelアクティブ時塗り色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったAreaはareaLabelActiveFillColorでの指定を上書きします。
labelDefaultStrokeColorString#fff 全てのLabel非アクティブ時線色を一括指定します。
labelDefaultStrokeColorsObject{} Area非アクティブ時線色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったLabelはlabelDefaultStrokeColorでの指定を上書きします。
labelActiveStrokeColorString | undefinedundefined 全てのLabelアクティブ時線色を一括指定します。
デフォルトではSVG上でデザインした色がアクティブ色として割り当てられます。
labelActiveStrokeColorsObject{} Labelアクティブ時線色を個別指定します。
{osaka: '#123456', kobe: '#999999'}
ここに指定があったLabelはlabelActiveStrokeColorsでの指定を上書きします。
labelDispAnim'static' | 'fadeIn' | 'fadeInUp' | 'fadeInRight' | 'fadeInDown' | 'fadeInLeft'fadeIn初期化時のLabelの表示エフェクトを指定します。
noEventLabelsArray[] Labelをクリックした時のイベントを無効にします。無効にしたいAreaID名を列挙します。
['tokyo', 'osaka']
本来、AreaLabelはクリックすると、対応するAreaをアクティブ化するイベントが割り当てられています。

Content

Option NameTypeDefaultDescription
contentChangeSpeedNumber0.5 コンテンツの切り替わるスピードを指定します。(単位は秒)
コンテンツとはOption Partsで定義できるdata-mapnj="area-content"が付加されたHTMLタグ要素です。

Background

Option NameTypeDefaultDescription
bgDefaultImageString(空文字)全てのAreaが非アクティブの時にマップの背景に表示される画像を指定します。
bgImagesObject{} Areaアクティブ時にマップの背景に表示される画像を個別指定します。
{osaka: '/osaka.jpg', kobe: '/kobe.jpg'}
bgBrightnessNumber100 背景画像の明るさを指定します。(単位はパーセント)
100%以下を指定すると、背景画像に黒いオーバーレイ要素を被せたような効果が得れます。
bgChangeSpeedNumber0.5背景画像の切り替わるスピードを指定します。(単位は秒)

Option Parts

In addition to the basic parts, it is possible to define optional parts.
Optional parts assign specific data attributes to HTML tag elements.

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

Events

By using the "on" method of the instance, it is possible to define functions that are executed at specific timings.

        
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 Integration

Design classes are added to the HTML tag element specified as the first argument during instance creation, depending on the state.
By utilizing these design classes, it is also possible to create custom design parts that work in conjunction with 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を最後尾文字列とし、付加されます。