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