HTML Карта изображения
Карты изображений позволяют создавать интерактивные изображения, где разные области изображения могут быть связаны с различными ссылками или действиями. Это особенно полезно для создания навигационных меню, карт и других элементов, где требуется взаимодействие с пользователем.
Что такое карты изображений?
Карты изображений — это способ создания кликабельных областей на изображении. В HTML для этого используется тег <map>
, который определяет карту изображения. Внутри тега <map>
находятся теги <area>
, которые определяют активные области на изображении.
Пример использования карты изображений
Кликните на компьютер, смартфон или чашку кофе на следующем изображении:

Вот исходный HTML код для приведенной карты изображения:
<img src="workplace.jpg" alt="Рабочее место" usemap="#workmap">
<map name="workmap">
<area shape="rect" coords="34,44,270,350" alt="Компьютер" href="computer.htm">
<area shape="rect" coords="290,172,333,250" alt="Телефон" href="phone.htm">
<area shape="circle" coords="337,300,44" alt="Кофе" href="coffee.htm">
</map>
Как это работает?
Основная идея карт изображений заключается в том, что вы можете выполнять разные действия в зависимости от того, где на изображении вы кликаете.
Для создания карты изображения вам нужно изображение и HTML-код, который описывает кликабельные области.
Изображение
Изображение вставляется с помощью тега <img>
. Единственное отличие от других изображений заключается в том, что вы должны добавить атрибут usemap
:
<img src="workplace.jpg" alt="Рабочее место" usemap="#workmap">
Атрибут usemap
указывает на имя карты изображения, которое используется для создания связи между изображением и картой.
Примечание: Для карты изображения можно использовать любое изображение!
Создание карты изображения
Затем добавьте тег <map>
. Тег <map>
используется для создания карты изображения и связывается с изображением с помощью обязательного атрибута name
:
<map name="workmap">
Атрибут name
должен иметь то же значение, что и атрибут usemap
тега <img>
.
Активные области
Затем следует добавить активные области. Активная область определяется с помощью тега <area>
.
Тег <area>
принимает несколько важных атрибутов:
shape
: Определяет форму области. Возможные значения:rect
(прямоугольник),circle
(круг),poly
(многоугольник).coords
: Определяет координаты области. Координаты зависят от формы:- Для
rect
:x1,y1,x2,y2
(верхний левый и нижний правый углы). - Для
circle
:x,y,r
(центр и радиус). - Для
poly
:x1,y1,x2,y2,...
(координаты вершин многоугольника).
- Для
href
: Определяет URL, на который ведет ссылка.alt
: Определяет альтернативный текст для области.
shape со значением rect (Прямоугольник)
Координаты активной области при атрибуте shape="rect"
представлены парами, одна для оси x и одна для оси y.
Таким образом, координаты 34,44
расположены в 34 пикселях от левого отступа и в 44 пикселях от верхнего:

Координаты 270,350
находятся на расстоянии 270 пикселей от левого края и 350 пикселей от верхнего края:

Теперь у нас достаточно данных, чтобы создать активную прямоугольную область, на которую можно нажимать:
Пример:
<area shape="rect" coords="34, 44, 270, 350" href="computer.htm">
Мы получаем такую активную область, по которой можно кликнуть, чтобы перейти на страницу «computer.htm»:

shape co значением circle (Круг)
Чтобы добавить область в форме круга, сначала определите координаты центра круга:
337,300

Затем укажите радиус окружности:
44
пикселей

Теперь у вас достаточно данных, чтобы создать интерактивную область в форме круга:
Пример:
<area форма="круг" координаты="337, 300, 44" ссылка="coffee.htm">
Мы получаем такую активную область, по которой можно кликнуть, чтобы перейти на страницу «coffee.htm»:

shape co значением poly (Многоугольник)
Значение shape="poly"
требует определения нескольких точек координат, которые образуют фигуру, состоящую из прямых линий (многоугольник).
С его помощью можно создать любую форму.
Например, круассана!
Как сделать так, чтобы круассан на изображении ниже стал кликабельной ссылкой?

Нам нужно найти координаты x и y для всех углов круассана:

Координаты указываются парами: одна для оси X, другая для оси Y:
Пример:
<area shape="poly" coords="140,121,181,116,204,160,204,222,191,270,140,329,85,355,58,352,37,322,40,259,103,161,128,147" href="croissant.htm">
Мы получаем такую активную область, по которой можно кликнуть, чтобы перейти на страницу «croissant.htm»:

Карты изображений и JavaScript
Активная область карты изображения также может запускать функцию JavaScript. Добавьте событие onclick
к тегу <area>
, чтобы выполнить функцию JavaScript:
Пример:
<map name="workmap">
<area shape="circle" coords="337,300,44" href="coffee.htm" onclick="myFunction()">
</map>
<script>
function myFunction() {
alert("Вы кликнули на кружку с кофе!");
}
</script>
Заключение
Карты изображений предоставляют мощные инструменты для создания интерактивных и адаптивных изображений в HTML. Они позволяют улучшить пользовательский опыт и сделать веб-страницы более удобными и привлекательными.