ImageMapsterでそれを行う方法は次のとおりです。
http://jsfiddle.net/zSBL5/
これを組み込みのツールチップ API で機能させるには、いくつかのことを行う必要があります。最初に、次のように各領域に属性を追加します。
<area data-key="2,all" shape="rect" coords="0,90,82,170"
href="http://www.shelterness.com/pictures/amazing-diy-photo-tiles-1-500x373.jpg" />
注data-key
。これが ImageMapster の「mapKey」です。あなたの状況でそれが必要な唯一の理由は、各エリアに同じツールチップを表示するために使用できる「すべて」と呼ばれる単一のエリア グループを作成するためです。各エリアにはこのような属性がありますが、番号は異なります (例: data-key="3,all"
、data-key="4,all"
など)。
次に、imagemapster をバインドするコードを次に示します。
$('img').mapster({
toolTipContainer: $('#tooltip-container'),
mapKey: 'data-key',
areas: [ {
key: 'all',
toolTip: true
}],
showToolTip: true,
onShowToolTip: function(data) {
if (this.href && this.href!='#') {
data.toolTip.html('<img src="'+this.href+'">');
}
}});
各オプションの意味は次のとおりです。
1)toolTipContainer
ツールチップを表示するテンプレートの HTML を含める必要があります。フィドルでは、ID「tooltip-container」の非表示の div を追加したことがわかります。
2)mapKey
は、各領域に追加した属性の名前です。この属性には、1 つ以上のカンマ区切りの値を含めることができます。Imagemapster は、最初の値を共有する強調表示用の領域をグループ化するため、領域をグループ化する必要がない場合は、別の領域を使用してください。2 番目の値は各エリアで同じにする必要があります。これを使用して、すべてのエリアのツールチップを有効にします。
3)areas
は、領域固有のフォーマット情報の配列です。通常、これを使用して、各領域のハイライト効果がどのように表示されるかを制御します。あなたの場合、私はそれを使用してすべての領域のツールチップをアクティブにしています。キーall
はすべての領域に一致します。これは、すべての領域が 2 番目のキーとしてそれを持ち、toolTip: true
ツールヒントを有効にするためです。通常toolTip: "some text specific to this area:"
、そのテキストは、デフォルトのツールチップ コンテナーに表示されるだけです。あなたの場合、画像を表示したいのですが、領域自体から画像の URL を取得したいので、ツールチップが表示されたときに関数で処理する必要があります。
4)showToolTip
マップ全体のツールチップを有効にします。
5)onShowToolTip
ツールチップが表示されるたびに呼び出される関数を定義します。ここから、それをインターセプトし、コンテンツを変更して、その領域からの画像を表示できます。
これはもっと単純なはずですが、imagemapster のツールチップ API は、各領域にハードコードされたテキストをいくつか持つだけの非常に単純なモデルを中心に設計されています。これは、各領域の href から URL を取得するための回避策です。