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