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

En Ua

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


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



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

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

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

Карта зображень Sun Mercury Venus

Пример

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

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

<map name="workmap">
  <area shape="rect" coords="34,44,270,350" alt="Computer" href="computer.html">
  <area shape="rect" coords="290,172,333,250" alt="Phone" href="phone.html">
  <area shape="circle" coords="337,300,44" alt="Coffee" 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 для всех краев круассана:

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

Координаты подаются попарно, одна для оси 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?