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="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 пикселей от верхнего:
Теперь у нас есть достаточно данных, чтобы создать прямоугольную область, на которую можно нажать:
Это область, которая становится интерактивной и направляет пользователя на страницу "computer.html":
Shape="circle"
Чтобы добавить область круга, сначала найдите координаты центра окружности:
337,300
Затем укажите радиус окружности:
44
pixels
Теперь у вас есть достаточно данных для создания интерактивной круговой области:
Это область, которая становится интерактивной и направляет пользователя на страницу "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?