{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Тёмная Яндекс-карта для вашего сайта на Tilda

Со своей меткой / иконкой

Доброго времени суток! Сегодня хочу поделиться с вами бесплатной модификацией для ваших сайтов на Tilda.

Передо мной неоднократно стоял вопрос — как сделать тёмную Яндекс-карту на Tilda. В поисках ответа была найдена видео-инструкция на просторах интернета. Но, к сожалению, на момент написания данной статьи, метод, описанный в видео, уже не работает. Пришлось переписать код. Но помимо тёмной Яндекс-карты, хотелось также установить на неё свою иконку (и эта возможность также была добавлена в код).

Также я продублирую инструкцию здесь.

Инструкция по установке модификации:

1. Создаёте Zero-block с необходимой высотой, удаляете из него все элементы и помещаете в него html-блок (нажимаете на "+" в левом верхнем углу экрана в созданном вами zero-блоке и выбираете "Add HTML");

2. Созданному HTML-блоку задаете высоту, ширину, расположение по осям X и Y (в дальнейшем, ваша карта будет располагаться внутри данного HTML-блока);

3. Вставляете в созданный HTML-блок код №1;

Код №1

<div id="map"></div>

4. В вашем Zero-блоке создаёте белый(!) shape (нажимаете на "+" в левом верхнем углу экрана в созданном вами zero-блоке и выбираете "Add Shape"), задаёте ему ширину, высоту, а также расположения по осям X и Y точно такое же(!) как у вашего html-блока;

ВАЖНО! Данный шейп должен располагаться на самом верху в слоях (нажимаете правую кнопку мыши на данном шейпе, а затем выбираете "Bring to front)";

5. Сохраняете изменения и публикуете страницу;

6. Открываете опубликованную страницу по ссылке (как обычный пользователь), наводите курсор мыши на ваш белый shape, нажимаете правую кнопку мыши и выбираете «посмотреть код» (в браузере Google Chrom). После этого, вы попадёте в код страницы, а ваш белый shape (на который вы предварительно навели курсор) будет подсвечен в коде(!);

7. Здесь вам необходимо найти класс вашего элемента, он должен быть вида "tn-elem__4346096441649723484272"(цифры у вас будут другие);

8. Копируете класс вашего элемента (например, tn-elem__4346096441649723484272) и вставляете его в код №2;

Код №2

<style> /*окрашивание карты: vladislav-land.ru/yandexmap*/ .ymaps-2-1-79-ground-pane { -ms-filter: grayscale(1); -webkit-filter: grayscale(1); -moz-filter: grayscale(1); -o-filter: grayscale(1); filter: grayscale(1); } /*режим наложения на шейп и отключение реакции курсора: vladislav-land.ru/yandexmap*/ .tn-elem__4346096441649723484272 { mix-blend-mode: difference; pointer-events: none; } </style>

9. Вставляете полученный HTML-код (код №2) на вашу страницу в блок T123 (библиотека блоков, вкладка «другое»);

10. Загружаете ваш логотип, который хотите разместить на карте (можно загрузить как на тильду, так и на любой сайт в интернете) — в дальнейшем мы будем использовать ссылку на этот логотип в коде №3;

11. Узнаёте координаты необходимой точки на Яндекс карте (место, где будет располагаться ваш логотип);

Чтобы узнать координаты точки на Яндекс карте, нажмите правой кнопкой мыши на эту точку, затем выберите пункт «Что здесь?». В левом верхнем углу появятся координаты, скопируйте их.

12. Подставляете свои значения в код №3;

ВАЖНО! При подставлении значений в код №3, обратите внимание в каком формате эти значения указаны в моём примере (подсказка внутри поля для ввода). Вы должны вставлять всё точно также, чтобы код сработал.

  • Ширина задаётся в пикселях, но аббревиатура "px" не указывается, просто цифра;
  • Координаты нужно указывать через запятую, а после запятой обязательно должен быть пробел;
  • В поле «приближение карты при запуске» задаётся просто число.

Перед использованием кода №3, настоятельно рекомендую ознакомиться с дополнением к инструкции!!!

Код №3

<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script> <style> /*Тёмная Яндекс карта в Zero-блоке на Tilda: vladislav-land.ru/yandexmap*/ #map { width: 100%; height:800px; padding: 0; margin: 0; } </style> <script> ymaps.ready(function () { var myMap = new ymaps.Map('map', { center: [53.902284, 27.561831], zoom: 11 }, { searchControlProvider: 'yandex#search' }), MyIconContentLayout = ymaps.templateLayoutFactory.createClass( '<div style="color: #FFFFFF; font-weight: medium;">$[properties.iconContent]</div>' ), myPlacemarkWithContent = new ymaps.Placemark([53.902284, 27.561831], { hintContent: 'город Минск' }, { iconLayout: 'default#imageWithContent', iconImageHref: 'https://static.tildacdn.com/tild3066-3565-4363-b939-313335623561/photo.png', iconImageSize: [55, 55], iconImageOffset: [-54, -110], iconContentOffset: [15, 15], iconContentLayout: MyIconContentLayout }); myMap.geoObjects .add(myPlacemarkWithContent); }); </script>

Дополнение к инструкции

В данной модификации мы использовали режим наложения "difference" на наш белый шейп. Но этот эффект будет также накладываться на ваш логотип (поскольку логотип находится над картой, но под шейпом). Чтобы это исправить, нужно пойти от обратного. Ниже прилагаю краткую инструкцию, как это сделать:

Заходим в "Figma", создаём новый проект или используем существующий;

Загружаем в проект ваш логотип;

Создаём белый прямоугольник с заливкой 100%, помещаем его поверх вашего логотипа;

Выбираем созданный прямоугольник и справа, во вкладке "Layer", меняем значение "Pass through" на "Difference";

Вы получите ваш логотип с наложением "Difference". Теперь вам необходимо пересоздать свой логотип, но в тех цветах, которые вы получили при наложении "Difference". Например, на моём логотипе буквы жёлтые, но при наложении они становятся синими. Я пересоздаю свой логотип, но вместо жёлтого цвета букв, я использую синий цвет. И логотип такого вида я загружаю на сервер, копирую ссылку, и использую эту ссылку в коде №3. В результате, при наложении эффекта "difference" (уже на самой карте), буквы логотипа будут менять свой цвет с синего на жёлтый.

Благодарю за внимание и буду рад, если модификация окажется для вас полезной!

Больше моих модификаций вы можете найти по ссылке:

А если вам необходима разработка уникальной модификации или создание сайта для вашего бизнеса, свяжитесь со мной

0
Комментарии
-3 комментариев
Раскрывать всегда