У меня есть массивная image
карта, встроенная в SVG, которая намного больше окна браузера и центрирована на экране.
<svg id='map' width='7192' height='3912' viewBox='0 0 7192 3912' version='1.1'>
<image width='7192' height='3912' x='0' y='0' preserveAspectRatio='none'
xlink:href='map.jpg' />
<!-------------------->
<!-- paths are here -->
<!-------------------->
</svg>
Есть два пути. Один путь очерчивает здание. Другой путь выделяет субрегион на карте.
Пользователь может щелкнуть эти пути, после чего конкретный путь будет постепенно центрироваться по центру экрана с помощью transition
.
Как только путь отцентрирован, я хотел бы вырезать или замаскировать все, что находится за пределами этого пути, так что единственной видимой частью изображения / карты является путь, который был выбран и отцентрирован.
Кто-нибудь знает, как это сделать?
Я пытался использовать clipPath
изначально в HTML, а также применять его к SVG в CSS, оба из которых, похоже, не работают. Либо это, либо я делаю что-то не так.
Вот рабочая демонстрация проекта.
Здание может быть расположено рядом с верхней средней частью карты. Субрегион, который легче найти, учитывая его размер, расположен в правом нижнем углу карты. Если вы их mouseenter
, пути будут fill
. Если вы нажмете на них, они будут центрированы на экране.