ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
HTML5. Уроки для начинающих. W3Schools на русском

Ua En Es De Fr

HTML Карты изображений


С помощью карт изображений HTML можно создавать зоны, на которые можно нажимать.


Карты изображений

HTML тег <map> определяет карту изображения. Карта изображений – это изображение с кликабельными областями. Области определяются одним или несколькими тегами <area>.

Попытайтесь нажать на компьютере, телефоне или чашке кофе на изображении ниже:

Карта изображений Комп’ютер Телефон Кава

Пример

Вот исходный код HTML для карты изображений выше:

<img src="workplace.jpg" alt="Workplace" usemap="#workmap">

<map name="workmap">
  <area shape="rect" coords="34,44,270,350" alt="Комп’ютер" href="computer.html">
  <area shape="rect" coords="290,172,333,250" alt="Телефон" href="phone.html">
  <area shape="circle" coords="337,300,44" alt="Кава" href="coffee.html">
</map>
Попробуйте сами »

Как это работает?

Идея карты изображения заключается в том, что вы должны иметь возможность выполнять различные действия в зависимости от того, где на изображении вы щёлкаете.

Для создания карты изображений требуется изображение и некоторый HTML-код, описывающий области, на которые можно нажать.


Изображения

Изображение вставляется с помощью тега <img>. Единственное отличие от других изображений состоит в том, что вы должны добавить атрибут usemap:

<img src="workplace.jpg" alt="Workplace" usemap="#workmap">

Значение usemap начинается с хеш-тега #, за которым следует имя карты изображения и используется для создания взаимосвязи между изображением и картой изображений.

Примечание: Вы можете использовать любое изображение в качестве карты изображения!


Создайте карту изображений

Потом добавьте элемент <map>.

Элемент <map> используется для создания карты изображения и связывается с изображением с помощью необходимого атрибута name:

<map name="workmap">

Атрибут name должен иметь те же значения, что и атрибут <img> usemap.


Кликабельные области

Потом добавьте кликабельные области.

Область, на которую можно нажать, определяется с помощью элемента <area>.


Форма кликабельной области

Вы должны определить форму области, на которую можно кликнуть, и вы можете выбрать одно из этих значений:

  • rect - определяет прямоугольную область
  • circle - определяет круговую область
  • poly - определяет полигональную область
  • default - определяет всю область

Вы также должны определить некоторые координаты, чтобы можно было разместить область, на которую можно нажать, на изображении.


Shape="rect"

Координаты для shape="rect" составляются попарно, одна для оси x, и одна для оси y.

Итак, координаты 34,44 расположены на 34 пикселя от левого поля и 44 пикселя от верхнего:

Карта изображений

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

Карта изображений

Теперь у нас достаточно данных, чтобы создать прямоугольную область, на которую можно нажать:

Пример

<area shape="rect" coords="34, 44, 270, 350" href="computer.html">
Попробуйте сами »

Это область, которая становится интерактивной (доступной для нажатия) и направляет пользователя на страницу "computer.html":

Карта изображений

Shape="circle"

Чтобы добавить область окружности, сначала найдите координаты центра круга:

337,300

Карта изображений

Затем укажите радиус окружности:

44 pixels

Карта изображений

Теперь у вас есть достаточно данных для создания интерактивной круговой области:

Пример

<area shape="circle" coords="337, 300, 44" href="coffee.html">
Попробуйте сами »

Это область, которая становится интерактивной и направляет пользователя на страницу "coffee.html":

Карта изображений

Shape="poly"

shape="poly" содержит несколько координатных точек, создающих фигуру, образованную прямыми линиями (многоугольник).

Это можно использовать для создания любой фигуры.

Как, может быть, форма круассана!

Как мы можем сделать так, чтобы круассан на картинке ниже стал кликабельной ссылкой?

Французька їжа

Мы должны найти координаты 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.html">
Попробуйте сами »

Это область, которая становится интерактивной и направляет пользователя на страницу "croissant.html":

Французька їжа

Карта изображений и JavaScript

Интерактивная область может также вызвать JavaScript.

Добавьте событие click к элементу <area> для выполнения функции JavaScript:

Пример

Здесь мы используем атрибут onclick для выполнения функции JavaScript при нажатии на область:

<map name="workmap">
 <area shape="circle" coords="337,300,44" onclick="myFunction()">
</map>

<script>
function myFunction() {
  alert("Ви клацнули чашкою кави!");
}
</script>
Попробуйте сами »

Выводы

  • Используйте HTML элемент <map> чтобы определить карту изображения
  • Используйте HTML элемент <area> чтобы определить кликабельные области на карте изображения
  • Используйте HTML атрибут usemap элемента <img> для указания на карту изображения

HTML Теги изображения

Тег Описание
<img> Определяет изображение
<map> Определяет карту изображения
<area> Определяет кликабельную область внутри карты изображения
<picture> Определяет контейнер для нескольких ресурсов изображений

Для ознакомления с полным списком всех доступных HTML тегов посетите HTML Справочник тегов на нашем сайте W3Schools на русском.


Вопросы для самоконтроля

  • Что такое карта изображений на веб-странице?
  • Для чего нужны карты изображений на HTML-странице?
  • Какой тег определяет карту изображения?
  • С помощью какого тега определяются кликабельные области на изображении?
  • Какой атрибут нужно добавить в изображение, чтобы установить взаимосвязь между изображением и картой изображений?
  • Какой тег определяет карту изображения на стороне клиента?
  • С помощью какого атрибута карта изображения связывается с изображением?
  • Какой тег определяет кликабельную область внутри карты изображений?
  • Какое значение определяет прямоугольная кликабельная область на изображении?
  • Какое значение определяет круговую кликабельную область на изображении?
  • Какое значение определяет полигональную кликабельную область на изображении?
  • Какое значение делает кликабельным все изображение?
  • Какой атрибут используется для выполнения JavaScript-функции onclick при нажатии на кликабельной области изображения?
  • К какому элементу необходимо добавить событие click для выполнения JavaScript-функции onclick?