В достаточно оригинальных сайтах требуется подсветка области при наведении на элемент. Это можно было бы сделать и с помощью обычной ссылки, при этом меняя фон активной области. Но что, если нам нужно навести мышь на круг или объект сложной формы?
В этом случае надо использовать плагин maphilight.ja на jQuery, который работает совместно с тегами map и area.
Для работы с плагином, достаточно его подключить вместе с jQuery библиотекой и вспомнить математику, а именно раздел с координатами. Где мы рисуем фигуры за счет абсцисс (X) и ординат (Y). Первой является всегда X, а затем идет Y. Но не все так сложно, как кажется.
Сначала создадим картинку и привяжем к ней "карту":
<script type="text/javascript"> $(function() { $('.map').maphilight(); }); </script>
<div class="map" style="background: url(demo_simple.png); display: block; position: relative; padding: 0px; width: 420px; height: 300px; ">
<img src="demo_simple.png" width="420" height="300" class="map maphilighted" usemap="#simple">
</div>
<map name="simple">
<area href="/" shape="poly" coords="47,62, 106,61, 134,72, 135,118, 30,116" >
<area href="/" shape="poly" coords="32,157, 133,157, 127,192, 127,211, 28,211" data-maphilight="{"strokeColor":"ffffff","strokeWidth":8,"fillColor":"6AA8FE","fillOpacity":0.9}" >
</map>
Важно, чтобы у всех были одинаковые размеры (картинка demo_simple.png и фон в классе .map). Картинка с атрибутом usemap должна быть связана с тегом <map name="simple"> (в данном случае по значению simple).
За счет этого, куда бы не перемещали главный div (class="map"), все точки и картинка останется на месте.
Также вы видите два area тега, которые в атрибуте coords рисуют координаты фигуры. Во втором area в data-maphilight задаются дополнительные параметры для фигуры.
На каждый элемент area можно задавать: ссылки id title alt и параметры (все пишется в одну строку):
data-maphilight="
{
"strokeColor":"0000ff", - Цвет обводки (ставить в 6 символов)
"strokeWidth":5, - Ширина обводки
"fillColor":"ff0000", - Цвет заливки (ставить в 6 символов)
"fillOpacity":0.6, - Прозрачность заливки
"stroke":false, - Без обводки
"alwaysOn":true - Подсвечивать область всегда
}"
Вот таким не хитрым способом и создаются интерактивные карты на сайтах. Лично я использовал данный скрипт, чтобы подсвечивать территории районов города при наведении мыши, а также планы домов и их этажей. Скрипт достаточно успешно справился со своей задачей.
Добавить комментарий