PageSourceSearch

https://remont-tnvd.com/map/map.js?v=334690624

js remont-tnvd.com collected 2026-10-07 02:59:53 UTC 5,844 bytes, 146 lines download raw bytes

1//Переменная для включения/отключения индикатора загрузки
2
3//Переменная для определения была ли хоть раз загружена Яндекс.Карта (чтобы избежать повторной загрузки при наведении)
4var check_if_load = false;
5
6
7// $("#ya-map").mouseover(function () {
8//     ymap();
9//     $("#ya-map").parent('section').addClass('showFullMap');
10//     $("#aside").fadeOut();
11// });
12$(document).ready(function() {
13    const mapElement = document.getElementById('ya-map');
14    if (mapElement) {
15        const observer = new IntersectionObserver((entries) => {
16            entries.forEach(entry => {
17                if (entry.isIntersecting) {
18                    ymap();
19                    $(entry.target).parent('section').addClass('showFullMap');
20                    $("#aside").fadeOut();
21
22                }
23            });
24        }, {
25            threshold: 0.7, // Срабатывает, когда 70% элемента видно
26            rootMargin: '-50px 0px 0px 0px' // Опционально: срабатывает за 50px до верхнего края viewport (для предзагрузки)
27        });
28
29        observer.observe(mapElement);
30    }
31});
32
33//Функция создания карты сайта и затем вставки ее в блок с идентификатором "map-yandex"
34function init() {
35
36    t = new ymaps.Map("map-yandex", {
37        center: [55.753220, 37.622513],
38        zoom: 9.5
39    });
40    var udaltsova = new ymaps.Placemark([55.688228, 37.488502], {
41        hintContent: "Техцентр «Моторист»",
42        balloonContent: "Москва, ул. Удальцова, 60, к.1",
43        iconCaption: "ул. Удальцова, 60, к.1"
44    }, {
45        preset: 'islands#blueRepairShopIcon',
46        iconGlyphColor: 'blue',
47    });
48    var sevastopolskaya = new ymaps.Placemark([55.634649, 37.543201], {
49        hintContent: "Техцентр «Моторист»",
50        balloonContent: "Москва, Севастопольский пр. 95 б, к.6",
51        iconCaption: "Севастопольский пр. 95 б, к.6"
52    }, {
53        preset: 'islands#blueRepairShopIcon',
54        iconGlyphColor: 'blue'
55    });
56    var lobnenskaya = new ymaps.Placemark([55.891821, 37.523931], {
57        hintContent: "Техцентр «Моторист»",
58        balloonContent: "Москва, ул. Лобненская д.17 к.6",
59        iconCaption: "ул. Лобненская д.17 к.6",
60    }, {
61        preset: 'islands#blueRepairShopIcon',
62        iconGlyphColor: 'blue'
63    });
64
65    var nauchnyi = new ymaps.Placemark([55.65555326950616, 37.55328910779519], {
66        hintContent: "Техцентр «Моторист»",
67        balloonContent: "Москва, Научный проезд д.14а к.1",
68        iconCaption: "Научный проезд д.14а к.1",
69    }, {
70        preset: 'islands#blueRepairShopIcon',
71        iconGlyphColor: 'blue'
72    });
73
74    t.geoObjects.add(udaltsova).add(sevastopolskaya).add(lobnenskaya).add(nauchnyi);
75}
76
77// Функция для определения полной загрузки карты (на самом деле проверяется загрузка тайлов) 
78function waitForTilesLoad(layer) {
79    return new ymaps.vow.Promise(function (resolve, reject) {
80        var tc = getTileContainer(layer), readyAll = true;
81        tc.tiles.each(function (tile, number) {
82            if (!tile.isReady()) {
83                readyAll = false;
84            }
85        });
86        if (readyAll) {
87            resolve();
88        } else {
89            tc.events.once("ready", function () {
90                resolve();
91            });
92        }
93    });
94}
95
96function getTileContainer(layer) {
97    for (var k in layer) {
98        if (layer.hasOwnProperty(k)) {
99            if (
100                layer[k] instanceof ymaps.layer.tileContainer.CanvasContainer
101                || layer[k] instanceof ymaps.layer.tileContainer.DomContainer
102            ) {
103                return layer[k];
104            }
105        }
106    }
107    return null;
108}
109
110// Функция загрузки API Яндекс.Карт по требованию (в нашем случае при наведении)
111function loadScript(url, callback) {
112    var script = document.createElement("script");
113
114    if (script.readyState) {  // IE
115        script.onreadystatechange = function () {
116            if (script.readyState === "loaded" ||
117                script.readyState === "complete") {
118                script.onreadystatechange = null;
119                callback();
120            }
121        };
122    } else {  // Другие браузеры
123        script.onload = function () {
124            callback();
125        };
126    }
127
128    script.src = url;
129    document.getElementsByTagName("head")[0].appendChild(script);
130}
131
132// Основная функция, которая проверяет когда мы навели на блок с классом "ymap-container"
133var ymap = function () {
134
135    if (!check_if_load) { // проверяем первый ли раз загружается Яндекс.Карта, если да, то загружаем
136        // Чтобы не было повторной загрузки карты, мы изменяем значение переменной
137        check_if_load = true;
138        // Загружаем API Яндекс.Карт
139        loadScript("https://api-maps.yandex.ru/2.1/?lang=ru_RU&loadByRequire=1", function () {
140            // Как только API Яндекс.Карт загрузились, сразу формируем карту и помещаем в блок с идентификатором "map-yandex"
141            ymaps.load(init);
142        });
143    }
144
145}
146

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.