Оптимизация скрипта ЯндексКарт page-camp.php

This commit is contained in:
Dekart Deploy Bot 2026-05-08 02:20:41 +03:00
parent 22eb09e82c
commit cee87ad419

View File

@ -618,33 +618,44 @@ function getBanner($nameBanner) {
</div>"; </div>";
} }
?> ?>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script> <script>
(function() {
<script> var mapLoaded = false;
var mapContainer = document.getElementById("ya-map");
let mapLoad = false; if (!mapContainer) return;
window.addEventListener('scroll', function(event) { var observer = new IntersectionObserver(function(entries) {
// Изменяем стили элемента при прокрутке страницы if (entries[0].isIntersecting && !mapLoaded) {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop; mapLoaded = true;
if (scrollTop > 100 && !mapLoad) { observer.disconnect();
ymaps.ready(init);
mapLoad = true; var script = document.createElement("script");
function init() { script.src = "https://api-maps.yandex.ru/2.1/?lang=ru_RU";
var map = new ymaps.Map("ya-map", { script.onload = function() {
center: [<?php echo $contact_location; ?>], ymaps.ready(function() {
zoom: 16 }, { var map = new ymaps.Map("ya-map", {
searchControlProvider: 'yandex#search' center: [<?php echo $contact_location; ?>],
}); zoom: 16
}, {
var myPlacemark = new ymaps.Placemark([<?php echo $contact_location; ?>], searchControlProvider: "yandex#search"
{iconContent: '<?php echo $contact_location_text; ?>'}, });
{preset: 'islands#redStretchyIcon'});
map.geoObjects.add(myPlacemark); var placemark = new ymaps.Placemark(
} [<?php echo $contact_location; ?>],
} { iconContent: "<?php echo $contact_location_text; ?>" },
}); { preset: "islands#redStretchyIcon" }
);
map.geoObjects.add(placemark);
});
};
document.body.appendChild(script);
}
}, { rootMargin: "200px" });
observer.observe(mapContainer);
})();
</script> </script>
<?php <?php
get_footer(); get_footer();