Оптимизация скрипта ЯндексКарт page-camp.php
This commit is contained in:
parent
22eb09e82c
commit
cee87ad419
@ -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>
|
||||
(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) {
|
||||
// Изменяем стили элемента при прокрутке страницы
|
||||
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 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 myPlacemark = new ymaps.Placemark([<?php echo $contact_location; ?>],
|
||||
{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>
|
||||
|
||||
|
||||
<?php
|
||||
get_footer();
|
||||
Loading…
Reference in New Issue
Block a user