Вот способ сделать это с 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
. Это «mapKey» ImageMapster. Единственная причина, по которой нам нужна эта ситуация, - создать единую группу областей, называемую «все», которая может использоваться для отображения одной и той же всплывающей подсказки для каждой области. Каждая область будет иметь такой атрибут, но с другим номером, например. 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 для шаблона, чтобы показать всплывающую подсказку. В скрипке вы увидите, что я добавил скрытый div с идентификатором «tooltip-container»
2) mapKey
- это имя атрибута, добавленного в каждую область. Этот атрибут может содержать одно или несколько значений, разделенных запятыми. Imagemapster объединяет области для выделения, которые разделяют первое значение, поэтому используйте разные, если вам не нужно группировать какие-либо области. Второе значение должно быть одинаковым для каждой области, я использую это для активации всплывающих подсказок для всех областей.
3) areas
- это массив информации форматирования, специфичной для конкретной области. Обычно вы используете это, чтобы контролировать, как отображаются эффекты подсветки для каждой области. В вашем случае я просто использую его для активации всплывающих подсказок для всех областей. Ключ all
соответствует каждой области, так как все они имеют это как второй ключ, а toolTip: true
позволяет всплывающие подсказки. Обычно вы скажете toolTip: "some text specific to this area:"
, и этот текст будет показан только в контейнере подсказок по умолчанию. В вашем случае мы хотим показать изображение, и я хочу захватить URL-адрес изображения из самой области, поэтому мне нужно обработать его в функции, когда будет показана всплывающая подсказка.
4) showToolTip
говорит, что включает всплывающие подсказки для всей карты.
5) onShowToolTip
определяет функцию, которая вызывается всякий раз, когда отображается всплывающая подсказка. Отсюда вы можете перехватить его и изменить содержимое, чтобы отобразить изображение из этой области.
Это должно быть проще, но API-интерфейс всплывающей подсказки в imagemapster действительно разработан вокруг очень простой модели, где у вас есть только жесткий код для каждой области. Это временное решение для захвата URL-адреса из href каждой области.
Возможное повторение http://stackoverflow.com/questions/745110/using-jquery-hover-with-html-image-map – Exor
предлагает получить плагин всплывающей подсказки, который можно легко найти в google. Храните URL-адрес изображения в каждой области в атрибуте данных, передайте его плагину – charlietfl
@charlietfl - Я попытался использовать qTip 2, но имеет проблему, см. Http://stackoverflow.com/questions/11131941/qtip-2- and-images – L84